Created
January 3, 2013 00:20
-
-
Save noniq/4439645 to your computer and use it in GitHub Desktop.
Nachtbeschäftigung: Logicals in Prolog modellieren/lösen.
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
% Wer (Vorname) hasst am Inselleben was besonders, und was vermisst er am meisten? | |
% | |
% Vornamen: Bernd, Dirk, Jens, Hubert, Sascha, Thomas | |
% Gehasst werden: Früchte, Rauschen des Meeres, Sand, Schlangen, Skorpione, Wetter | |
% Vermisst werden: Auto, Bier, Ehefrau, Fernsehen, Kinder, Kumpels. | |
loesung(Vornamen, Hasst, Vermisst) :- | |
% 1. Der Mann auf Position 5 vermisst seine Kinder. | |
nth(5, Vermisst, kinder), | |
% 3. Der Mann, der sein Feierabendbier vermisst, steht direkt links neben Bernd | |
% und direkt rechts neben dem Mann, der Angst vor den Schlangen hat. | |
nth(C1, Vermisst, bier), | |
nth(C2, Vornamen, bernd), | |
C1 =:= C2 - 1, | |
nth(C3, Hasst, schlangen), | |
C1 =:= C3 + 1, | |
% 4. Sascha, der seine Kumpels vermisst, steht direkt neben dem Mann, der die | |
% Früchte der Insel hasst. | |
nth(D1, Vornamen, sascha), | |
nth(D1, Vermisst, kumpels), | |
nth(D2, Hasst, fruechte), | |
abs(D1 - D2) =:= 1, | |
% 5. Der Mann auf Position 4 hasst das Rauschen des Meeres. | |
nth(4, Hasst, rauschen), | |
% 6. Der Gestrandete, der seine Ehefrau vermisst, steht zwei Positionen weiter | |
% rechts als der Mann, der den Sand hasst, weil dieser in alle Ritzen kriecht. | |
nth(F1, Vermisst, ehefrau), | |
nth(F2, Hasst, sand), | |
F1 =:= F2 + 2, | |
% 7. Zwischen Dirk und den Mann, der das Fernsehen vermisst und die Skorpione | |
% hasst, steht genau ein weiterer Mann. | |
nth(G1, Vornamen, dirk), | |
nth(G2, Vermisst, fernsehen), | |
nth(G2, Hasst, skorpione), | |
abs(G1 - G2) =:= 2, | |
% 8. Hubert steht auf Position 3. | |
nth(3, Vornamen, hubert), | |
permutation(Vornamen, [bernd, dirk, jens, hubert, sascha, thomas]), | |
permutation(Hasst, [fruechte, rauschen, sand, schlangen, skorpione, wetter]), | |
permutation(Vermisst, [auto, bier, ehefrau, fernsehen, kinder, kumpels]), | |
% 2. Der Gestrandete ganz rechts findet das Wetter der Insel in Ordnung. | |
\+(nth(6, Hasst, wetter)), | |
% 9. Jens steht nicht auf Position 2. | |
\+(nth(2, Vornamen, jens)). |
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
| ?- loesung([A1, A2, A3, A4, A5, A6], [B1, B2, B3, B4, B5, B6], [C1, C2, C3, C4, C5, C6]). | |
A1 = sascha | |
A2 = thomas | |
A3 = hubert | |
A4 = dirk | |
A5 = bernd | |
A6 = jens | |
B1 = sand | |
B2 = fruechte | |
B3 = schlangen | |
B4 = rauschen | |
B5 = wetter | |
B6 = skorpione | |
C1 = kumpels | |
C2 = auto | |
C3 = ehefrau | |
C4 = bier | |
C5 = kinder | |
C6 = fernsehen ? a | |
(1 ms) no |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment