Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Das ist der code: # Würfeln-Zufall
from random import randint
n_Nochmal = True
while n_Nochmal:
b = 0
Ende = True
Anzahl_Würfel = float(input("Wie viele Würfel? "))
Anzahl_Augenzahl = float(input("Augenzahl der/s Würfel/s? "))
Anzahl_Würfe = float(input("Anzahl Würfe? "))
a = Anzahl_Würfel * Anzahl_Augenzahl
while Ende:
Zufall = randint(Anzahl_Würfel, a) print(Zufall)
b += 1
if b == Anzahl_Würfe :
Nochmal = input("Nochmal mit selben Einstellungen?(y/n) ")
if Nochmal != "y":
Ende = False
Nochmal = input("Nochmal mit anderen Einstellungen?(y/n) ")
if Nochmal != "y":
n_Nochmal = False
else:
break
else:
b = 0
Und ich würde gerne an der makierten stelle eine liste einbauen die zält wie oft und was rausgekommen
ist.
für Ideen wonach ich kucken könnte und script vorschläge Danke.
@SmombieTV: Der Code in Code-Tags wäre schön, so dass man die nicht ganz unwichtige Einrückung auch sehen kann.
Mal davon abgesehen das `Ende` ein komischer Name für ein Flag ist das genau das Gegenteil aussagt, würde man hier eine ``for`` statt einer ``while``-Schleife verwenden.
`collections.defaultdict()` wäre wohl was Du suchst.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Dass in der innersten Schleife entschieden wird, was weiter außen passieren soll, ist etwas seltsam, dann wird die Schleife mal mit Ende = False und mal mit break verlassen, solche Inkonsistenzen will man beim Programmieren vermeiden, weil sich der Leser fragt, was ist da der Unterschied.
Was soll das n bei n_Nochmal? a und b sind schlechte Namen, weil zu kurz, a würde z.B. besser 'Maximal_Augenzahl` heißen. `Zufall` ist kein Zufall sondern eine zufällig ermittelte Zahl.
Du willst die Summe mehrerer Würfel gleichzeitig ermitteln? Das ist falsch, weil die Zahlen nicht gleich häufig auftreten.
`collections.Counter` könnte man zum Zählen verwenden.
# Würfeln-Zufall
from random import randint
from collections import defaultdict
d = defaultdict(int)
n_Nochmal = True
while n_Nochmal:
b = 0
Ende = True
Anzahl_Würfel = float(input("Wie viele Würfel? "))
Anzahl_Augenzahl = float(input("Augenzahl der/s Würfel/s? "))
Anzahl_Würfe = float(input("Anzahl Würfe? "))
a = Anzahl_Würfel * Anzahl_Augenzahl
while Ende:
Zufall = randint(Anzahl_Würfel, a)
d[Zufall] += 1
b += 1
if b == Anzahl_Würfe :
print (d)
Nochmal = input("Nochmal mit selben Einstellungen?(y/n) ")
if Nochmal != "y":
Ende = False
Nochmal = input("Nochmal mit anderen Einstellungen?(y/n) ")
if Nochmal != "y":
n_Nochmal = False
else:
break
else:
b = 0
Ich programmiere jetzt erst seit langen wieder etwas Python und da hat es mir sehr geholfen Danke.
Wenn ihr noch ne Idee habt wie man den Output in einer reinfolge ausgeben kann.
wäre nice.
# Würfeln-Zufall
from random import randint
from collections import defaultdict
d = defaultdict(int)
b = 0
Ende = True
Anzahl_Würfel = int(input("Wie viele Würfel? "))
Anzahl_Augenzahl = float(input("Augenzahl der/s Würfel/s? "))
Anzahl_Würfe = float(input("Anzahl Würfe? "))
while Ende:
Zufall = 0
for i in range(Anzahl_Würfel):
Zufall += randint(1, Anzahl_Augenzahl)
d[Zufall] += 1
b += 1
if b == Anzahl_Würfe :
print (d)
Nochmal = input("Nochmal mit selben Einstellungen?(y/n) ")
if Nochmal != "y":
Ende = False
else:
b = 0
Ich finde, der sieht besser aus und gibt echtere Ergebnisse aus, mir war es leid wegen der Schule immer zu würfeln immer 100 mal mit unterschiedlich vielen Würfeln langweilig, cooden macht mehr Spaß.
Lade ich noch hoch auf Github.
# Würfeln-Zufall
from random import randint
from collections import Counter
anzahl_würfel = int(input("Wie viele Würfel? "))
anzahl_augenzahl = int(input("Augenzahl der/s Würfel/s? "))
anzahl_würfe = int(input("Anzahl Würfe? "))
wahrscheinlichkeiten = Counter()
while True:
wahrscheinlichkeiten.update(
sum(randint(1, anzahl_augenzahl) for _ in range(anzahl_würfel))
for _ in range(anzahl_würfe)
)
print(wahrscheinlichkeiten)
nochmal = input("Nochmal mit selben Einstellungen?(y/n) ")
if nochmal != "y":
break