Ich habe mich gefragt, wie ich ein solches Programm implementieren würde. Hier einige meiner Ideen: (In den folgenden Absätzen gilt: ich = das Programm)
Angenommen, man kann nur mit "Ja", "Nein" oder "Weiß nicht" antworten: Ich würde zuerst eine Frage stellen, die etwa 50% der möglichen Charaktere eliminiert, sowohl wenn der Benutzer mit "Ja" oder mit "Nein" antwortet. Ich würde so weitermachen, bis nur 1 Charakter übrig bleibt.
Nun könnte es passieren, dass 0 Charaktere übrig bleiben. In diesem Fall müsste ich einige Antworten neu überdenken; sie könnten falsch gewesen sein. Ich würde damit anfangen, zuerst eine Antwort zu ignorieren, so dass nur 1 Charakter übrig bleibt, wenn das möglich ist. Oder wenn nicht 1 Charakter, dann die geringstmögliche Anzahl von Charakteren. Dann würde ich weitere Fragen mit dem oben beschriebenen Algorithmus stellen.
Akinator gestattet auch, mit "Wahrscheinlich ja" oder "Wahrscheinlich nein" zu antworten. Ich würde diese Antworten wie "Ja" bzw. "Nein" behandeln, aber wenn es dazu kommt, dass ich eine Antwort überdenken muss, würde ich zuerst eine dieser Antworten wählen. Das heißt, ich würde in dieser Menge von Antworten nach der Antwort suchen, die zu überspringen die geringst mögliche Anzahl von Charakteren ergibt.
Die Datenbank wird auf dem basierend, was mir die Benutzer beibringen, konstruiert. Die größte Anzahl der "Ja"- bzw. "Nein"-Antworten auf jede Frage wird für jeden Charakter gespeichert. Das sind die Daten, auf denen mein Raten basieren wird.
Ich frage mich, wie ähnlich diese Ideen dem tatsächlichen Algorithmus von Akinator sind?