Einstein napisał zagadkę. Powiedział, że 98% świata nie może tego rozwiązać.
Rozwiązałem tę zagadkę w około 25 minut w pociągu do pracy. To po prostu dedukcja.
Zagadka
Istnieje 5 domów w 5 różnych kolorach z rzędu.
W każdym domu mieszka osoba o innej narodowości.
Pięciu właścicieli pije określony rodzaj napoju, pali określoną markę cygara i utrzymuje określone zwierzę domowe.
Żaden właściciel nie ma tego samego zwierzaka, nie pali tej samej marki cygara ani nie pije tego samego napoju.
Pytanie: Kto jest właścicielem ryby?
Aby rozwiązać tę zagadkę, Einstein zapewnia 15 wskazówek:
- Brytyjczyk mieszka w czerwonym domu.
- Szwed trzyma psy jako zwierzęta domowe.
- Duńczyk pije herbatę.
- Zielony dom znajduje się po lewej stronie białego domu.
- Właściciel zielonego domu pije kawę.
- Właściciel, który pali Pall Mall, hoduje ptaki.
- Właściciel żółtego domu pali Dunhill.
- Właściciel mieszkający w domu centralnym pije mleko.
- Norweg mieszka w pierwszym domu.
- Właściciel, który pali mieszanki, mieszka obok tego, który trzyma koty.
- Właściciel, który trzyma konia, mieszka obok tego, który pali Dunhill.
- Właściciel, który pali Bluemasters, pije piwo.
- Niemiec pali księcia.
- Norweg mieszka obok niebieskiego domu.
- Właściciel, który pali mieszanki, mieszka obok tego, który pije wodę.
Dzięki tym wskazówkom możesz znaleźć rozwiązanie.
Twoje zadanie: Stwórz program, który rozwiąże tę zagadkę. Kodowanie na stałe rozwiązanie jest niedozwolone (duh)
Dozwolone jest zakodowanie podpowiedzi w dowolnym formacie.
Przykładowy format:
//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)
== oznacza równa
/ oznacza po lewej stronie
\ oznacza po prawej stronie
/ \ oznacza po lewej lub prawej stronie
Tak jak powiedziałem, dozwolone są albo wskazówki twardego kodu, albo mieć je jako dane wejściowe.
Dane wyjściowe: Dane wyjściowe powinny być w następującym formacie (z poprawnymi wartościami, mówiąc tylko o trollach;))
_____________ _____________ _____________ _____________ _____________
| 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!
Pola sztuki Ascii mogą być przez ciebie zmieniane, o ile są to pudełka, nie ma znaczenia, jakich symboli używasz.
Żadna wiedza na temat tej zagadki i rozwiązania nie może być wykorzystana w programie. Aby rozwiązać zagadkę, należy użyć czystej logiki i dedukcji.
Oznaczono to jako codegolf, ale może to być wyzwanie kodowe, nie jestem pewien. Wszelkie uwagi na temat kryteriów wygranej w konkursie kodowym możesz podzielić się :)
Na razie jest to gra w golfa, więc wygrywa program o najniższej liczbie bajtów.
Powodzenia i Szczęśliwego kodowania :)