Binominalverteilung (3er Pasch bei 6 Würfeln)
Verfasst: Freitag 30. Dezember 2022, 13:57
Hallo zusammen,
um die Häufigkeit eines 3er-Pasch bei 6 Würfeln zu ermitteln, verwende ich die Binomialverteilung:
Ergebnis:
Das scheint zu stimmen. Ich habe ein Youtube-gefunden, in dem die WK für einen Zweierpasch berechnet wurde. Das Ergebnis aus dem Youtube ist identisch mit meinem Code.
Mit anderen Worten: Der Code scheint korrekt zu sein
Trotzdem wollte ich mal Gegenrechnen.
Ich verwende hierzu das kartesiche Produkt. Bei 6 Würfeln sind das 6^6 = 46656 verschiedene Möglichkeiten, wie die Würfel fallen können .
Dann suche such alle 5er-Pasch (ich hätte auch 333 oder nach 666 suchen können)
Ergebnis:
Hat jemand eine Idee, warum ich mit dem loop über das kartisische Produkt das Ergebnis 0.37371399176954734 erhalten.
Mit der Binominalverteilung aber 0.32150205761316875?
Wo liegt mein Denkfehler?
Danke, viele Grüße Mario
um die Häufigkeit eines 3er-Pasch bei 6 Würfeln zu ermitteln, verwende ich die Binomialverteilung:
Code: Alles auswählen
import scipy.special
n = 6
k = 3
p = 1/6
ergebnis = scipy.special.binom(n, k) * p**k * (1-p)**(n-k)
print(f"Wahrscheinlichkeit 3er z.B. '555':\t {ergebnis}")
print(f"Wahrscheinlichkeit aller 3er Pasch:\t {ergebnis * 6}")
Code: Alles auswählen
Wahrscheinlichkeit 3er z.B. '555': 0.05358367626886146
Wahrscheinlichkeit aller 3er Pasch: 0.32150205761316875
Mit anderen Worten: Der Code scheint korrekt zu sein
Trotzdem wollte ich mal Gegenrechnen.
Ich verwende hierzu das kartesiche Produkt. Bei 6 Würfeln sind das 6^6 = 46656 verschiedene Möglichkeiten, wie die Würfel fallen können .
Dann suche such alle 5er-Pasch (ich hätte auch 333 oder nach 666 suchen können)
Code: Alles auswählen
import itertools
products = list(itertools.product("123456", repeat=6))
# products = list(itertools.product("123", repeat=4))
def convertTuple(tup):
str = ''.join(tup)
return str
kartesisches_produkt = len(list(products))
# print(f"kartesisches_produkt:\t {kartesisches_produkt}")
treffer_pasch = 0
# Print
for tup in list(products):
tup = tuple(sorted(tup))
# print(tup)
tup_as_string = convertTuple(tup)
# print(f"tup_as_string:\t {tup_as_string}")
if '555' in tup_as_string:
treffer_pasch += 1
print(f"treffer_pasch:\t {treffer_pasch}")
print("Treffer geteilt durch Gesamtzahl", (treffer_pasch / kartesisches_produkt))
print("multiplizier mit 6 Würfelseiten: ", (treffer_pasch / kartesisches_produkt) * 6)
Code: Alles auswählen
treffer_pasch: 2906
Treffer geteilt durch Gesamtzahl 0.062285665294924554
multiplizier mit 6 Würfelseiten: 0.37371399176954734
Mit der Binominalverteilung aber 0.32150205761316875?
Wo liegt mein Denkfehler?
Danke, viele Grüße Mario