Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren

Plötzlich Code

Bingo.py


# -*- coding: utf-8 -*-

u"""Skript, das die Wahrscheinlichkeit von BINGO simuliert
input:
    times =Häufigkeit, mit der der Lotteriemaschine gedreht wird, card_num =Anzahl der Karten
outpu:
Wahrscheinlichkeit, auch nur einen zu bekommen

"""
import sys
from random import sample

#Loch
HIT = True
NOHIT = False


def generate_card():
    u"""Karte generieren
5x5 Mitte(3 Zeilen 3 Spalten)Karte mit einem Loch in
    B(1. Reihe) 1 - 15
    I(2. Reihe) 16 - 30
    N(3. Reihe) 31 - 45
    G(4. Reihe) 46 - 60
    O(5. Reihe) 61 - 75
    :returns: array card, length=25

    """
    cards = []
    for i in range(5):
        cards.extend(sample(range(15 * i + 1, 15 * (i + 1)), 5))
    cards[12] = HIT
    return cards


def check_bingo(card):
    u"""Ob Sie BINGO sind
Nur Urteil
    param: array
    :returns: boolean
    """
    if card.count(HIT) < 5:
        return False
    for i in range(5):
        if NOHIT not in card[i * 5: (i + 1) * 5]:
            return True
    for i in range(5):
        if NOHIT not in card[i: i + 21: 5]:
            return True
    if NOHIT not in card[0: 24: 6]:
        return True
    if NOHIT not in card[4: 21: 4]:
        return True
    return False


def print_card(card):
    for i, v in enumerate(card):
        if v == HIT:
            v = "o"
        elif v == NOHIT:
            v = "x"
        sys.stdout.write("%3s" % str(v))
        if (i % 5 == 4):
            print()
    print()


try:
    times = int(sys.argv[1])
except IndexError:
    times = 5
try:
    card_num = int(sys.argv[2])
except IndexError:
    card_num = 10000

hit_count = 0
for i in range(card_num):
    card = generate_card()
    lots = sample(range(1, 76), times)
    card_hole = [(HIT if (x == HIT or x in lots) else NOHIT) for x in card]
#    print_card(card)
#    print_card(card_hole)
    if check_bingo(card_hole):
        hit_count += 1

print(str(times) + u"Wahrscheinlichkeit von nur einem BINGO beim ersten Mal:")
p = hit_count / card_num
print("%s (%.1f %%)" % (str(p), p * 100))

Gist: https://gist.github.com/0c11f757334ba9ef7b1f

Eingang: Häufigkeit, mit der der Lotteriemaschine gedreht wird Anzahl der Karten (Anzahl der Simulationen) output: Wahrscheinlichkeit von nur einem BINGO

Sie sollten in der Lage sein, die Erklärung jeder Funktion in den Kommentaren zu verstehen.

  1. Kartengenerierung
  2. Batch-Generierung der gezogenen Lotterie
  3. Machen Sie ein Loch in die Karte
  4. BINGO Urteil Schleife

Der Teil, in dem Sie wie Python schreiben können Ich denke, dass der Teil, der beurteilt, ob die Karte (BINGO-Karte) getroffen wird oder nicht, auf Python-ähnliche Weise geschrieben ist (ich wollte hier nur einen Prozess machen)

#Urteil in der 4. Spalte
NOHIT not in card[3:3 + 21:5]
#Beurteilung diagonal von links oben nach rechts unten
NOHIT not in card[0:24:6]

Python-Arrays können mit dem Array [start: end: step] abgerufen werden, sodass Beurteilungen intelligent geschrieben werden können.

Beispiel für die Ausführungsausgabe

>> python3 bingo.py 5 10000
Wahrscheinlichkeit von nur einem BINGO beim 5. Mal:
0.0003 (0.0 %)

Es spielt keine Rolle, aber was ich diesmal in Flake 8 als Codierungsstandard für Python gelernt habe Zwischen den Funktionen müssen zwei Zeilen offen sein Setzen Sie keine Leerzeichen auf die ** rechte Seite ** des Array-Doppelpunkts (wie das Argument Komma).

Ich weiß immer noch nicht, wie ich einen Dokumentblock schreiben soll, also werde ich lernen

Recommended Posts

Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Ich habe versucht, mit Python ein Tippspiel zu spielen
Ich möchte ein Spiel mit Python machen
Ich habe mit Python ein Bin-Picking-Spiel gemacht
Ich habe versucht, Trumps Kartenspiel in Python zu implementieren
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Movidius NCS mit Python von Raspberry Pi3 auszuführen
Lebensspiel mit Python! (Conways Spiel des Lebens)
[Python] Ich habe versucht, automatisch einen täglichen Bericht über YWT mit Outlook-Mail zu erstellen
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe mit Python einen Daemon erstellt
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, das Blackjack of Trump-Spiel mit Python zu implementieren
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
[Systemhandel] Ich habe versucht, mit dem zerlegten stochastischen Oszillator mit Python ♬ zu spielen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
Ich habe versucht, ein missverstandenes Gefangenendilemma in Python zu implementieren
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe eine Heatmap mit Seaborn [Python] gezeichnet.
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe mit Python eine Hex-Map erstellt
Ich habe ein Lebensspiel mit Numpy gemacht
Ich habe versucht, ein Auto in 3D zu erkennen