100 likes | 230 Views
Matemáticas Recreativas. José Eduardo Rivera Cabaleiro. Problema “Números en la frente”.
E N D
Matemáticas Recreativas José Eduardo Rivera Cabaleiro
Problema “Números en la frente” • Se eligen dos números p y b consecutivos y pertenecientes a [1..t]. Se le escribe en la frente uno a Blas y otro a Paco, los cuales están situados uno en frente del otro. Manuel se encuentra en otra habitación (no ve nada). La conversación entre Blas y Paco es de la forma: BLAS: No sé el numero de mi frente PACO: Pues yo tampoco BLAS: Pues yo sigo sin saberlo... (hasta que alguno de los dos ya sepa su número) • Código del problema y conclusiones:
Ejemplo esclarecedor • (t=9)El espacio de estados sería: [(1,2),(2,1),(2,3),(3,2),(3,4),(4,3),(4,5),(5,4), (5,6),(6,5),(6,7),(7,6),(7,8),(8,7),(8,9),(9,8)] • Para Manuel, al escuchar a Blas decir que no sabe su número, sabe que Paco no tiene ni un 1 ni un 9 (pues si lo tuviera solo habría na posibilidad para el número consecutivo de Blas) [(1,2),(2,1),(2,3),(3,2),(3,4),(4,3),(4,5),(5,4), (5,6),(6,5),(6,7),(7,6),(7,8),(8,7),(8,9),(9,8)]
Ejemplo esclarecedor • Si Manuel escucha ahora a Paco decir que el tampoco sabe su número (Paco y Blas inteligentes) es porque, al igual que antes, Blas no tiene ni un 1 ni un 9, y además, como sabe que el no tiene ni un 1 ni un 9, Blas no puede tener ni un 2 ni un 8 (pues sólo habría una única posibilidad para su número) [(1,2),(2,1),(2,3),(3,2),(3,4),(4,3),(4,5),(5,4), (5,6),(6,5),(6,7),(7,6),(7,8),(8,7),(8,9),(9,8)]
Ejemplo esclarecedor • Éste último razonamiento es válido en el resto de iteraciones, eliminado cuatro estados cada vez: • Conclusión: • 1 iteración: se elimina dos estados • Resto iteraciones: se elimina cuatro estados (Mas estudios en el código)
Problema “P - S” • Hans elige dos números distintos mayores que 1, entrega el producto a PROD y la suma a SUM, que mantienen el siguiente dialogo: SUMA: No se como vas a adivinar mi suma. PROD: Entonces, no se tu suma SUMA: Pues yo ya se tu producto. ¿Cuales eran los números elegidos por Hans? • Problema resuelto y variantes:
Problema “P - S” • Supongamos que el código solución fuera: • ¿Sería correcto? Vamos a ver un contraejemplo: el número 18 cumple (suma1 18) y no es solución. suma s = and ( map varios [sumasDe p | p <-productosDe s] ) prod p = varios [s | s <- sumasDe p, suma s] suma1 s = uno [p | p <- productosDe s, prod p] sol = [s | s <- [5..], suma s, suma1 s]
Contraejemplo Suma1 18 => uno [p | p <- productosDe 18, prod p] productosDe 18 => [32,45,56,65,72,77,80] • Sólo un elemento (i) de productosDe 18 puede satisfacer (prod i) para que 18 sea solución i=32 prod 32 => varios [s | s <- sumasDe 32, suma s] sumasDe 32 => [18,12] • Varios de (sumasDe 32) tendrían que cumplir (suma i) para que (prod 32) fuera verdadero, es decir, tendría que ser verdadero tanto (suma 18) como (suma 12) suma 18 => False suma 12 => False prod 32 => False • Luego i /= 32 !
Contraejemplo • Seguimos probando para el resto de (productosDe 18) ([32,45,56,65,72,77,80]) y tenemos que efectivamente sólo hay un i que cumple (prod i) y es i=72 prod 72 => varios [s | s <- sumasDe 72, suma s] sumasDe 72 => [38,27,22,18,17] suma 38 => False suma 27 => True suma 22 => False prod 72 => True suma 18 => False suma 17 => True !
Contraejemplo • Observamos que 18 sería solución mientras que realmente no cumple (suma 18)!!!Y es que la “s” de (suma1 s) es distinta de la de (suma s), cosa que hay que tener en cuenta a la hora de ir eliminando estados a medida que sucede la conversación • Conjetura de Goldbach: todo número par es suma de dos números primos => No puede haber un número par solución de éste problema.