[PYTHON] Ein Programm, das einige Fragen beantwortet und die nächste Antwort vorhersagt

Ich habe ein Programm erstellt, das dem Benutzer drei Fragen stellt und dann die Antwort vorhersagt, die der Benutzer beantworten wird.

Quelle

quiz.py


# -*- coding: utf-8 -*-
import random
questions = ["Ich mag Katzen besser als Hunde",
        "Wissenschaft",
        "Mann",
        "Ich mag Reis besser als Brot",
        ]
ourAnswers = [[0,1,1,1],
             [1,1,1,0],
             [0,0,1,0],
             [0,1,0,1],
             [1,0,0,1],
             ]


def quiz():
    u"""Ich habe ein paar Fragen. Dann antizipieren Sie die Antwort, die Sie beantworten werden.
    """
    target = random.randint(0,len(questions)-1)
    yourAnswer = len(questions)*[0]
    rates = len(questions)*[0]

    for i, question in enumerate(questions):
        if i == target:
            continue
        yourAnswer[i] = int(raw_input(question+"Ist es? 1.Ja,0.Nein:"))

    for i in xrange(len(questions)):
        i_is1count = 0
        target_is1count = 0
        for ourAns in ourAnswers:
            if ourAns[i] == yourAnswer[i] or i == target:
                i_is1count += 1
                if ourAns[target] == 1:
                    target_is1count += 1
        if i_is1count == 0:
            rates[i] = 0.5
        else:
            rates[i] = float(target_is1count) / i_is1count
    rate = sum(rates)/len(rates)
    if rate >= 0.5:
        yourAnswer[target] = int(raw_input("★ Du{0}nicht wahr?(Wahrscheinlichkeit{1:.2f}%) 1.Ja,0.Nein:".format(questions[target],rate*100)))
    else:
        yourAnswer[target] = 1 - int(raw_input("★ Du{0}Ist es nicht?(Wahrscheinlichkeit{1:.2f}%) 1.Ja,0.Nein:".format(questions[target],100-rate*100)))
    ourAnswers.append(yourAnswer[:])


if __name__ == "__main__":
    while(True):
        quiz()

Ausführungsergebnis

Magst du Katzen besser als Hunde? 1.Ja,0.Nein:1
Ist es Wissenschaft? 1.Ja,0.Nein:1
Magst du Reis besser als Brot? 1.Ja,0.Nein:1
★ Bist du ein Mann?(Wahrscheinlichkeit 52.50%) 1.Ja,0.Nein:

Oh, oh ...

Bitte schreiben Sie die Fragen (Fragenliste) und unsere Antworten (Liste der Antwortlisten) zu Beginn neu und spielen Sie. Ich werde nach und nach schlauer. Die Beurteilungskriterien sind wie folgt.

Wahrscheinlichkeit, dass Frage X JA ist = Prozentsatz der Antwort X ist JA, wenn Antwort Y [JA / NEIN] ist

Wir wägen nicht ab, welche Frage sich dem Kern nähert.

Recommended Posts

Ein Programm, das einige Fragen beantwortet und die nächste Antwort vorhersagt
Ein Programm, das nur die Esc-Taste drückt und loslässt
Schreiben Sie ein Programm, das das Programm missbraucht und 100 E-Mails sendet
[Python] Ein Programm, das die Partitur rundet
Programm zur Suche nach demselben Bild
Ein Shell-Programm, das eine Fibonacci-Sequenz anzeigt
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
[Python] Ein Programm, das die Anzahl der Täler zählt
Ein Programm, das ein paar Kilogramm BMI und Standardgewicht verlangt [Python]
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Ein Programm, das bestimmte Zeichen aus dem eingegebenen Text entfernt
[Python] Ein Programm, das die häufigsten Vogeltypen findet
[Golang] Ein Programm, das die Runde mit Zufallszahlen bestimmt
Ein Programm, das den Servobefehl der Funksteuerung empfängt, den Raspetorte unterbricht und protokolliert.
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Die Geschichte des Exportierens eines Programms
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
Ein Programm, das alle Nachrichtenüberschriften sanft wiederherstellt
Ein Python-Programm, das die Größe eines Videos ändert und es in ein Bild verwandelt