Einstein escribió un acertijo. Dijo que el 98% del mundo no podía resolverlo.
Resolví este enigma en unos 25 minutos mientras estaba en el tren para ir a trabajar. Básicamente es solo deducción.
El acertijo
Hay 5 casas en 5 colores diferentes en una fila.
En cada casa vive una persona con una nacionalidad diferente.
Los 5 propietarios beben un determinado tipo de bebida, fuman una determinada marca de cigarros y mantienen una determinada mascota.
Ningún propietario tiene la misma mascota, fuma la misma marca de cigarros ni bebe la misma bebida.
Pregunta: ¿Quién es el dueño del pescado?
Para resolver este enigma, Einstein proporciona 15 pistas:
- El británico vive en la casa roja.
- El sueco mantiene a los perros como mascotas.
- El danés bebe té.
- La casa verde está a la izquierda inmediata de la casa blanca.
- El dueño de la casa verde toma café.
- El dueño que fuma Pall Mall cría pájaros.
- El dueño de la casa amarilla fuma Dunhill.
- El dueño que vive en la casa del centro bebe leche.
- El noruego vive en la primera casa.
- El dueño que fuma Blends vive al lado del que tiene gatos.
- El dueño que mantiene el caballo vive al lado del que fuma Dunhill.
- El dueño que fuma Bluemasters bebe cerveza.
- El alemán fuma Príncipe.
- El noruego vive al lado de la casa azul.
- El dueño que fuma Blends vive al lado del que bebe agua.
Con estos consejos puede llegar a una solución.
Tu tarea: crea un programa que resuelva este enigma por ti. La codificación dura de la solución no está permitida (duh)
Está permitido codificar las pistas en cualquier formato.
Formato de ejemplo:
//Hints in order
(Nationality:Brit)==(Color:Red)
(Nationality:Swede)==(Pet:Dogs)
(Nationality:Dane)==(Drink: Tea)
(Color:Green)/(Color:White)
(Color:Green)==(Drink:Coffee)
(Smoke:PallMall)==(Pet:Birds)
(Color:Yellow)==(Smoke:Dunhill)
(House:3)==(Drink:Milk)
(Nationality:Norwegian)==(House:1)
(Smoke:Blend)/\(Pet:Cats)
== significa igual a
/ significa en el lado izquierdo de
\ significa en el lado derecho de
/ \ significa izquierda o derecha de
Como dije, está permitido codificar pistas o tenerlas como entrada.
Salida: La salida debe estar en el siguiente formato (con los valores correctos, solo para los trolls;))
_____________ _____________ _____________ _____________ _____________
| Number | | Number | | Number | | Number | | Number |
| Nationality | | Nationality | | Nationality | | Nationality | | Nationality |
| Color | | Color | | Color | | Color | | Color |
| Drink | | Drink | | Drink | | Drink | | Drink |
| Smoke | | Smoke | | Smoke | | Smoke | | Smoke |
| Pet | | Pet | | Pet | | Pet | | Pet |
--------------- --------------- --------------- --------------- ---------------
The <Nationality> in the <Color> house owns the fish!
Usted puede cambiar los cuadros de arte Ascii, siempre que sean cuadros, sin importar qué símbolos use.
Cualquier conocimiento sobre este acertijo y solución no se puede utilizar en el programa. Debería usar lógica pura y deducción para resolver el enigma.
Etiquetó esto como un codegolf, pero podría ser un desafío de código, no estoy seguro. Cualquier idea sobre los criterios ganadores para un desafío de código no dude en compartir :)
Por ahora este es el código de golf, por lo que gana el programa con el bytecount más bajo.
Buena suerte y feliz codificación :)