Last active
October 22, 2016 21:29
-
-
Save noniq/366338 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% Lösung des aktuellen (04/2010) P.M.-LogikRätsels | |
% ================================================ | |
% | |
% http://www.pm-magazin.de/de/onlinetraining/logik_trainer/logikraetsel.asp | |
% | |
% Der Brite Samuel Farwell gehört zu jenen Pionieren des modernen Segelsports, | |
% die heute kaum noch jemand kennt. Mehrfach versuchte er zu Beginn des | |
% 20. Jahrhunderts alleine in seinem Boot die Welt zu umsegeln – ohne jemals | |
% dieses hoch gesteckte Ziel zu erreichen. | |
% | |
% In welchem Jahr brach der Segler welchen Törn ab (Startort, geplantes und | |
% tatsächliches Ziel)? | |
% | |
% Hinweise | |
% -------- | |
% | |
% - Den in Bordeaux abgebrochenen Segeltörn hatte Samuel Farwell irgendwann | |
% nach dem Gibraltar-Törn unternommen und ein Jahr vor dem Start in Brighton. | |
% | |
% - Die Fahrt nach Algier endete ungewollt in Dünkirchen. | |
% | |
% - Der Versuch, den Samuel in Dover startete, fand später, aber nicht genau | |
% drei Jahre später als die Segelmember statt, die in Calais zu Ende ging. | |
% | |
% - Worthing war nicht der Startort des Jahres 1901, und der in Worthing | |
% begonnene Törn endete nicht in Plymouth. | |
% | |
% - Im Jahr 1903 versegelte sich Samuel Farwell derart, dass er völlig | |
% enttäuscht in Torquay an Land ging. | |
% | |
% - Nach Tanger brach der Segler früher auf als nach Tunis, jedoch später | |
% als zur Insel Madeira. | |
% | |
% - Seinen letzten Versuch, die Welt zu umsegeln, startete Samuel Farwell | |
% in Portsmouth. | |
hinweis_1(Loesung) :- | |
member([Jahr_Bordeaux, _, _, bordeaux], Loesung), | |
member([Jahr_Gibraltar, _, gibraltar, _], Loesung), | |
Jahr_Bordeaux > Jahr_Gibraltar, | |
member([Jahr_Brighton, brighton, _, _], Loesung), | |
Jahr_Bordeaux =:= Jahr_Brighton - 1. | |
hinweis_2(Loesung) :- | |
member([_, _, algier, duenkirchen], Loesung). | |
hinweis_3(Loesung) :- | |
member([Jahr_Dover, dover, _, _], Loesung), | |
member([Jahr_Calais, _, _, calais], Loesung), | |
Jahr_Dover > Jahr_Calais, | |
\+(Jahr_Dover =:= Jahr_Calais + 3). | |
hinweis_4(Loesung) :- | |
member([1901, Start, _, _], Loesung), | |
Start \= worthing, | |
member([_, worthing, _, Ende], Loesung), | |
Ende \= plymouth. | |
hinweis_5(Loesung) :- | |
member([1903, _, _, torquay], Loesung). | |
hinweis_6(Loesung) :- | |
member([Jahr_Tanger, _, tanger, _], Loesung), | |
member([Jahr_Tunis, _, tunis, _], Loesung), | |
Jahr_Tanger < Jahr_Tunis, | |
member([Jahr_Madeira, _, madeira, _], Loesung), | |
Jahr_Tanger > Jahr_Madeira. | |
hinweis_7(Loesung) :- | |
member([1905, portsmouth, _, _], Loesung). | |
logical(Loesung) :- | |
Loesung = [[1901, S1, Z1, E1], | |
[1902, S2, Z2, E2], | |
[1903, S3, Z3, E3], | |
[1904, S4, Z4, E4], | |
[1905, S5, Z5, E5]], | |
permutation([S1, S2, S3, S4, S5], [brighton, dover, portsmouth, southend, worthing]), | |
permutation([Z1, Z2, Z3, Z4, Z5], [algier, gibraltar, madeira, tanger, tunis]), | |
permutation([E1, E2, E3, E4, E5], [bordeaux, calais, duenkirchen, plymouth, torquay]), | |
hinweis_1(Loesung), | |
hinweis_2(Loesung), | |
hinweis_3(Loesung), | |
hinweis_4(Loesung), | |
hinweis_5(Loesung), | |
hinweis_6(Loesung), | |
hinweis_7(Loesung). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment