Kein Aprilscherz.
Kennt ihr diese Kugeln, die mit einer Reihe von Fragen erraten, wodran man denkt? Ganz früher gabs das mal als "Tiere raten" auf den ersten PCs.
Die zugrunde liegende Datenstruktur ist ein einfacher binärer (?) Baum aus Fragenodes und Antwortnodes. Wenn der J/N-Unterzweig eines Fragenodes ein Antwortnode ist, wird diese Antwort als "Ist es ein Pferd?" angezeigt.
Wenn das falsch ist (es ist eine Kuh) muss eine neue Frage her, die das "Pferd" von der Kuh unterscheidet. Etwa "Hat es Hörner?". Und wir müssen wissen, ob die Kuh an den JA oder den NEIN-Teil der neuen Frage gehört.
Nun kann man die neue Frage und die neue Antwort anstelle der alten Frage in den Baum einklinken, und so die Wissensdatenbank erweitern.
Durchlauf 1:
Q: Ist es ein Tier? (j/n) n
Q: Verwendet man es beim Essen oder Trinken? (j/n) j
Q: Kann man es essen? (j/n) j
Ist es ein Keks? (j/n) j
Juhuu!
Durchlauf 2:
Q: Ist es ein Tier? (j/n) n
Q: Verwendet man es beim Essen oder Trinken? (j/n) j
Q: Kann man es essen? (j/n) n
Ist es ein Teeloeffel? (j/n) n
Du hast gewonnen!
Hilf mir bitte, mein Wissen zu erweitern:
Antworte auf die folgende Frage bitte mit etwas
in der Art von 'ein Baum', 'eine Plage' -- aber bitte ohne Satzzeichen dahinter:
Was hattest du dir vorgestellt? Es war
ein Becher
Welche Frage unterscheidet 'ein Teeloeffel' und
'ein Becher' so, dass die Antwort fuer das eine
JA und fuer das andere NEIN lautet?
Kann man daraus trinken?
Gilt fuer '
ein Becher': '
Kann man daraus trinken?'? (j/n)
j
Links:
Einfaches Beispielprogramm (Python)
Eine Wissensdatenbank