Respuestas para Pensar

Un complemento para el Blog del querido profesor Nestor del Prado en Cubadebate

  • Inicio
  • Explicaciones y Respuestas
  • Retos y Soluciones
  • ¿Cómo lo hice?
  • Programadores
  • Curiosidades
  • Acerca de

Código para Decifrar Todas las Soluciones de Juan, Rodolfo, Margarita, Yosue, Sofía

26 julio, 2019 by yosue1970 Leave a Comment

Yosue Dijo:

Este Ejercicio al estar muy abierto y tener demasiadas variaciones, uno puede reducir la cantidad haciendo un análisis. Ahí les vá el mió.

En el ejercicio no se dan restricciones por tanto pongo las mías:
-La Edad mínima entre padre e hijo 14.
-M No dice que sea la madre de Y y S por tanto puede que su edad sea menor.
-M Puede ser mayor que R, incluso mayor que el padre del marido.
-Los Hijos son de diferentes edades, cualquiera puede ser el mayor.

En este caso no hay reglas es una eacuacón con múltiples varialblesy que además los dígitos tienen que ser diferente. En este caso las soluciones son muchas, y que además tienen pocas restricciones.
Algunas de las Conclusiones «que me hice» para tratar de entender este ejercicio:
-La mayor edad a alcanzar 120 años.
-La menor edad para tener hijos 14. Se que en la vida práctica hay excepciones. Pero esa es la regla -+.
-Margarita es la Esposa de rodolfo, pero no necesariasmente la madre de los niños. Ya que los nietos son de josé por tanto son hijos de Rodolfo. No hay nada que sugiera que Margarita es la madre.
-Yosue y Sofía uno es mayor que el otro, pero puede ser cualquiera. Por tanto sus edades se pueden permutar.
-Margarita puede o no ser menor que Rodolfo, pero además puede ser menor que uno o de ambos hijos de Rodolfo.
-Soluciones tanteadas, porque no encontré ninguna regla general para la solución o acotamiento del ejercicio. Espero ver la Regla en la Respuesta.
Las respuestas están en este orden: Jose, Rodolfo, Margarita, Yosue y Sofía.

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.Grids,
Vcl.DBGrids, Data.Win.ADODB, Vcl.Mask, Vcl.DBCtrls;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Ej: TEdit;
Er: TEdit;
Em: TEdit;
Label11: TLabel;
Label12: TLabel;
Ey: TEdit;
Es: TEdit;
BComenzar: TButton;
BPausar: TButton;
ADOConnection1: TADOConnection;
ADOTable2: TADOTable;
DataSource2: TDataSource;
BGuardar: TButton;
Label15: TLabel;
Filter1: TEdit;
ADOTable2Id: TAutoIncField;
ADOTable2x: TIntegerField;
ADOTable2m: TIntegerField;
ADOTable2y: TIntegerField;
ADOTable2n: TIntegerField;
ADOTable2z: TIntegerField;
ADOTable2r: TIntegerField;
ADOTable2Tabla: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure BComenzarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
ExecutionCicle : Boolean;
pm, tm : integer;
stk : Boolean;
Contador : Integer;
a,b,c,d,e,f : integer;
vis:boolean;
Terminar :Boolean;

end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BComenzarClick(Sender: TObject);
var
Ns,Ny,Nm,Nr,Nj,s,y,m,r,j,z,ddd,cs,ds,us,cy,dy,uy,cm,dm,um,cr,dr,ur,cj,dj,uj,st,pp, qq : integer;

begin
ExecutionCicle := false;
stk := false;
Terminar := false;

Filter1.Enabled :=false;
BComenzar.Enabled := false;
pm := 0;
tm:=0;
st:=0;
vis:=false;
pp:=120 ;
qq:=14;

//

if stk then Ns:= 4 else Ns:= 1;
for s := Ns to (pp-qq-qq-1) do begin
if stk then Ny:= 8 else Ny:= s+1;
for y := Ny to (pp-qq-qq) do begin
if stk then Nm:= 70 else Nm:= qq;
for m := Nm to (pp) do begin
if stk then Nr:= 32 else Nr:= y+qq;
for r := Nr to (pp-qq) do begin
pm:=r;//if (m>r) then pm:=m else pm:=r;
vis := not(vis);
if vis then Application.ProcessMessages;

begin
j:= m+s+y+1-r;
if (j>=(pm+qq)) then begin
Ej.Text := intToStr(j);
Er.Text := intToStr(r);
Em.Text := intToStr(m);
Ey.Text := intToStr(y);
Es.Text := intToStr(s);
cs := (s div 100);
ds := ((s – (cs * 100)) div 10);
If ((cs=0) and (ds = 0)) Then ds := 11;
If cs = 0 Then cs := 10;
us := s Mod 10;

cy := (y div 100);
dy := ((y – (cy * 100)) div 10);
If ((cy=0) and (dy = 0)) Then dy := 13;
If cy = 0 Then cy := 12;
uy := y Mod 10;

cm := (m div 100);
dm := ((m – (cm * 100)) div 10);
If ((cm=0) and (dm = 0)) Then dm := 15;
If cm = 0 Then cm := 14;
um := m Mod 10;

cr := (r div 100);
dr := ((r – (cr * 100)) div 10);
If ((cr=0) and (dr = 0)) Then dr := 17 ;
If cr = 0 Then cr := 16;
ur := r Mod 10;

cj := (j div 100);
dj := ((j – (cj * 100)) div 10);
If ((cj=0) and (dj = 0)) Then dj := 19;
If cj = 0 Then cj := 18 ;
uj := j Mod 10 ;

If (((cs <> cj) And (cs <> dj) And (cs <> uj) And (ds <> us) And (ds <> cy) And (ds <> dy) And (ds <> uy) And (ds <> cm) And (ds <> dm) And (ds <> um) And (ds <> cr))) Then
If (((ds <> dr) And (ds <> ur) And (ds <> cj) And (ds <> dj) And (ds <> uj) And (us <> cy) And (us <> dy) And (us <> uy) And (us <> cm) And (us <> dm) And (us <> um))) Then
If (((us <> cr) And (us <> dr) And (us <> ur) And (us <> cj) And (us <> dj) And (us <> uj) And (cy <> dy) And (cy <> uy) And (cy <> cm) And (cy <> dm) And (cy <> um))) Then
If (((cy <> cr) And (cy <> dr) And (cy <> ur) And (cy <> cj) And (cy <> dj) And (cy <> uj) And (dy <> uy) And (dy <> cm) And (dy <> dm) And (dy <> um) And (dy <> cr))) Then
If (((dy <> dr) And (dy <> ur) And (dy <> cj) And (dy <> dj) And (dy <> uj) And (uy <> cm) And (uy <> dm) And (uy <> um) And (uy <> cr) And (uy <> dr) And (uy <> ur))) Then
If (((uy <> cj) And (uy <> dj) And (uy <> uj) And (cm <> dm) And (cm <> um) And (cm <> cr) And (cm <> dr) And (cm <> ur) And (cm <> cj) And (cm <> dj) And (cm <> uj))) Then
If (((dm <> um) And (dm <> cr) And (dm <> dr) And (dm <> ur) And (dm <> cj) And (dm <> dj) And (dm <> uj) And (um <> cr) And (um <> dr) And (um <> ur) And (um <> cj))) Then
If (((um <> dj) And (um <> uj) And (cr <> dr) And (cr <> ur) And (cr <> cj) And (cr <> dj) And (cr <> uj) And (dr <> ur) And (dr <> cj) And (dr <> dj) And (dr <> uj))) Then
If (((ur <> cj) And (ur <> dj) And (ur <> uj) And (cj <> dj) And (cj <> uj) And (dj <> uj))) Then begin st := st + 1;

// Si encuentra las soluciones, las guarda.
ADOTable2.Insert;
ADOTable2x.Value := j;
ADOTable2m.Value := r;
ADOTable2y.Value := m;
ADOTable2n.Value := y;
ADOTable2z.Value := s;
ADOTable2.Post;
end;
end;

end; {form y}
end; {form x}
end;{form r}
end;{form n}
end;{form m}

ShowMessage(‘Se acabo’);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
stk := true;
Terminar := false;
end;

end.

Total de Soluciones: 1852.

Resumiendo profesor.

Si quiere que Margarita sea
la Madre de Yosue y Sofía
Rodolfo tendría que ser
Menor que su Mujer.

Si en Cambio quiere tener
Una mujer más Joven
Que busque otras soluciones
y a Margarita la pone
de Madrasta de sus hijos.

José en Cambio se siente
feliz del experimento
Con sus nietos bien contentos
Con su madre o su madrasta.

Y a Nestor con el pensamiento
lo queremos invitar
a una regla general
para resolver este acertijo
que RarJ así le dijo
y a todos puso a pensar.

Filed Under: Programadores

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Últimas Entradas

  • Respuesta Números Malvados y Odiosos. 26 septiembre, 2019
  • Función recursiva para obtener números capicúas 3 septiembre, 2019
  • Código Visual Basic (Excel) para descifrar suma de cinco números (diferentes) oblongos que suman 540 19 agosto, 2019
  • Si la suma de cinco números oblongos menores de 300 es igual a 540 ¿Cuáles son esos cinco números? 15 agosto, 2019
  • Halle cinco números oblongos cuya suma sea igual a 99. 12 agosto, 2019

Comentarios

  • yosue1970 en Si la suma de cinco números oblongos menores de 300 es igual a 540 ¿Cuáles son esos cinco números?
  • Nestor del Prado Arza en Si la suma de cinco números oblongos menores de 300 es igual a 540 ¿Cuáles son esos cinco números?
  • yosue1970 en Respuesta a “Ejes rotando y tú calculando; y además completar refranes”
  • cam en Respuesta a “Ejes rotando y tú calculando; y además completar refranes”

Encuestas

¿Cómo es mi sitio?

Ver resultados

Cargando ... Cargando ...

Acceso al Sitio

  • Registrarse
  • Acceder
  • RSS de las entradas
  • RSS de los comentarios
  • WordPress.org
  • Inicio
  • Explicaciones y Respuestas
  • Retos y Soluciones
  • ¿Cómo lo hice?
  • Programadores
  • Curiosidades
  • Acerca de

Copyright © 2019 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in