Prolog - Logisches Rätsel

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von jan10101, 31.01.2006.

  1. jan10101

    jan10101 Thread Starter MacUser Mitglied

    Beiträge:
    59
    Zustimmungen:
    0
    Registriert seit:
    27.12.2005
    Hallo ich will dieses logische Rätsel in Prolog aufschreiben:
    Vieleicht kann mir da ja mal jemand nen Tip für geben.

    "Fünf Männer wohnen in füunf nebeneinander liegenden Häusern unterschiedlicher
    Farbe. Sie haben unterschiedliche Geschmacksvorlieben bei Speisen und Getränken und
    halten unterschiedliche Haustiere. Ordnen Sie den Häusern die anderen 4 Eigenschaften
    zu. Beantworten Sie damit die folgende Frage: Welche Nationalität hat der Halter des
    Goldfischs?
    1. Der Finne wohnt im ersten Haus
    2. Der Holl¨ander wohnt im gr¨unen Haus
    3. Der Grieche trinkt gerne Milch
    4. Das rote Haus liegt links vom blauen
    5. Derjenige, der gern Pizza isst, wohnt neben demjenigen, der eine Katze h¨alt
    6. Derjenige, der im gelben Haus wohnt, liebt Schokolade
    7. Der Tscheche isst gern Fisch
    8. Derjenige, der das Haus in der Mitte bewohnt, trinkt gern Tee
    9. Derjenige, der gern Pizza isst, hat einen Nachbarn, der am liebsten Wasser trinkt
    10. Derjenige, der am liebsten Bockwurst isst, h¨alt sich V¨ogel
    11. Der Franzose h¨alt sich Hunde
    12. Der Finne wohnt neben dem weißen Haus
    13. Der Liebhaber von Pommes Frites trinkt gern Kaffee
    14. Der Pferdeliebhaber wohnt neben dem gelben Haus
    15. Im roten Haus trinkt man am liebsten Bier
    "

    Folgende Regeln sind schon vorgegeben:

    bei([A1|A0],A):-A1=A;bei(A0,A).
    bei([A1|A0],A,[B1|B0],B):-A1=A,B1=B;bei(A0,A,B0,B).
    nach(A0,A,[_|B0],B):-bei(A0,A,B0,B).
    neben(A0,A,B0,B):-nach(A0,A,B0,B);nach(B0,B,A0,A).

    loesung(
    [P1,F1,E1,D1,T1],
    [P2,F2,E2,D2,T2],
    [P3,F3,E3,D3,T3],
    [P4,F4,E4,D4,T4],
    [P5,F5,E5,D5,T5]):-
    [P1,P2,P3,P4,P5]=P,
    [F1,F2,F3,F4,F5]=F,
    [E1,E2,E3,E4,E5]=E,
    [D1,D2,D3,D4,D5]=D,
    [T1,T2,T3,T4,T5]=T.

    P steht für Personen, F für Farben, E für Gerichte, D für Getränke, T für Tiere


    Jetzt müsst ich doch nur noch die 15 Punkte von oben in Prolog-Sprache schreiben oder?
    Hab aber schon bei Nummer 1 Probleme...
    Bei 5 würd ich sagen heißt es: neben(E,pizza,T,katze).
    Würde das so stimmen?
     
  2. BenIrminger

    BenIrminger MacUser Mitglied

    Beiträge:
    327
    Zustimmungen:
    0
    Registriert seit:
    23.12.2004
    Dieses Rätsel ist von Albert Einstein. Und 98% der Weltbevölkerung kann dieses Rätsel NICHT lösen. Ich glaub nicht das eine Formel das Problem lösen kann.
     
  3. Tim99

    Tim99 MacUser Mitglied

    Beiträge:
    1.498
    Zustimmungen:
    6
    Registriert seit:
    18.02.2004
    Doch, das geht mit Prolog. Nur kann ich Dir bei der genauen Realisierung auch nicht weiterhelfen.
     
  4. BenIrminger

    BenIrminger MacUser Mitglied

    Beiträge:
    327
    Zustimmungen:
    0
    Registriert seit:
    23.12.2004
    Dann warte ich mal auf die Lösung
     
  5. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    Das ist doch eine klassische Prolog Aufgabe, die hatte ich auch schon im Studium.

    Einerseits sollst Du es natürlich selber lösen, aber es würde mich sehr wundern wenn google die Lösung nicht kennt.

    Alex
     
  6. rash65

    rash65 unregistriert

    Beiträge:
    111
    Zustimmungen:
    0
    Registriert seit:
    27.10.2004
    Hatte auch einmal die Idee das in Prolog aufzuschreiben, habs aber relativ schnell wieder aufgegeben. Habe damals danach gegooglet und ein paar Lösungen gefunden, diese sind aber nicht ganz so trivial, vorallem wenn du nicht 5 Jahre auf die Lösung warten willst :)
     
  7. jan10101

    jan10101 Thread Starter MacUser Mitglied

    Beiträge:
    59
    Zustimmungen:
    0
    Registriert seit:
    27.12.2005
    Eigentlich kann das nicht so schwer sein... ist die erste Aufgabe, die wir zu Prolog haben und wir hatten erst eine Vorlesung über die Prolog-Grundlagen.

    Achja, wenn jemand die Lösung für das Rätsel haben will: ich könnte das schnell hochladen... :)
     
  8. Incoming1983

    Incoming1983 MacUser Mitglied

    Beiträge:
    7.597
    Zustimmungen:
    1
    Registriert seit:
    23.07.2005
    Ach quatsch, die 98% sind übertrieben.
    Die meisten Leute, die ich kenne, und die sich dahinter geklemmt haben, haben das gelöst.

    Außerdem ist es afaik durch Prädikatenlogik lösbar (kann ja gerne jemand beweisen ;-)), und sollte damit auch in Prolog gehen.

    Ich habs damals mit nem Excel-Sheet gelöst und manuellem Umgruppieren - also ganz "old style".
     
  9. rash65

    rash65 unregistriert

    Beiträge:
    111
    Zustimmungen:
    0
    Registriert seit:
    27.10.2004
    Ich meinte die ausgefuchsteren Lösungen sind nicht so ganz trivial. Dadurch das der Prolog Interpreter/Compiler ja alle Möglichkeiten durchgeht dauert das auswerten bei der einfach Lösung halt relativ lange.
     
Die Seite wird geladen...
Ähnliche Themen - Prolog Logisches Rätsel
  1. Roi
    Antworten:
    1
    Aufrufe:
    769
  2. wollo
    Antworten:
    42
    Aufrufe:
    6.605

Diese Seite empfehlen