[PYTHON] Das Problem der Lügner und der Ehrlichkeit

Ich habe versucht, Das Problem der Lügner und der Ehrlichkeit mit Python zu lösen. Ich habe die Antworten nicht gefunden. Python einfach.

import itertools

#Wenn Sie ein Lügner sind, antworten Sie das Gegenteil
def ans( person, liars, b):
    if person in liars:
        b = not b
    return b

def print_res(liars, cards):
    print('-----')
    for i in range(4):
        print( '{}:{} {}'.format('ABCD'[i], 'Lüge' if i in liars else 'Positiv', cards[i]))

#Eine Kombination aus einem Lügner und einer Karte
liars_g = itertools.combinations(list(range(4)),2) #Lügner
cards_g = itertools.permutations(list(range(1,5))) #Karte
for liars, cards in itertools.product(liars_g,cards_g):
    #Herr A: Meine Karte ist gerade.
    #Herr B: Meine Karte ist entweder 3 oder 4.
    #Herr C: Herr B ist eine ehrliche Familie.
    #Herr D: Meine Karte ist 1.
    if  ans( 0, liars, cards[0] % 2 == 0) and \
        ans( 1, liars, cards[1] in (3,4)) and \
        ans( 2, liars, 1 not in liars) and \
        ans( 3, liars, cards[3] == 1):
        print_res(liars, cards)

Antworten

-----
A:Lüge 1
B:Positiv 3
C:Positiv 2
D:Lüge 4
-----
A:Lüge 1
B:Positiv 3
C:Positiv 4
D:Lüge 2
-----
A:Lüge 1
B:Positiv 4
C:Positiv 2
D:Lüge 3
-----
A:Lüge 1
B:Positiv 4
C:Positiv 3
D:Lüge 2
-----
A:Lüge 3
B:Positiv 4
C:Positiv 1
D:Lüge 2
-----
A:Positiv 4
B:Lüge 2
C:Lüge 3
D:Positiv 1

Recommended Posts

Das Problem der Lügner und der Ehrlichkeit
Das Problem der Lügner und der Ehrlichkeit
Über Probleme und Lösungen von OpenPyXL (Version 3.0)
FizzBuzz Problem dies und das
Mechanismus von Pyenv und Virtualenv
Vor- und Nachbearbeitung von Pytest
Kombination von rekursiv und Generator
Kombination von anyenv und direnv
Erklärung und Implementierung von SocialFoceModel
Differenzierung der Sortierung und Verallgemeinerung der Sortierung
Koexistenz von Pyenv und Autojump
Verwendung und Integration von "Shodan"
Vergleich des ungarischen Rechts und der Allzwecklöser für Zuordnungsprobleme
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Auftreten und Auflösung von tensorflow.python.framework.errors_impl.FailedPreconditionError
Vergleich von Apex und Lamvery
Quellinstallation und Installation von Python
Einführung und Tipps von mlflow.Tracking
Umgebungskonstruktion von Python und OpenCV
Grundkenntnisse in Linux und Grundbefehle
Kombinationsoptimierungstypische Probleme und wie es geht
Reihenfolge der Argumente für RegularGridInterpolator und interp2d
Die Geschichte von Python und die Geschichte von NaN
Erläuterung und Implementierung von PRML Kapitel 4
Einführung und Implementierung von JoCoR-Loss (CVPR2020)
Vorteile und Beispiele für die Verwendung von Rabbit Mq
Erklärung und Implementierung des ESIM-Algorithmus
Mischgefahr! Ndarray und Matrix
Installation von SciPy und matplotlib (Python)
Bedeutung des maschinellen Lernens und des Mini-Batch-Lernens
Einführung und Implementierung der Aktivierungsfunktion
Memorandum zum Speichern und Laden des Modells
Missverständnisse und Interpretationen von Luigis Abhängigkeiten
Erklärung und Implementierung von einfachem Perzeptron
Berechnung der selbst erstellten Klasse und der vorhandenen Klasse
Dies und das von Python-Eigenschaften
Versuchsplanungsmethode und Kombinationsoptimierung
Merkmale der symbolischen und harten Verbindung
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Zusammenfassung der Python-Indizes und -Slices
Aggregation und Visualisierung akkumulierter Zahlen
Reputation von Python-Büchern und Nachschlagewerken