Python :: Aufgabe #66 :: Lösung #1
4 Lösungen

#66
Verteilung beim Würfeln mit zwei Würfeln
Anfänger - Python
von Alucard1766
- 11.02.2015 um 13:59 Uhr
Angenommen du wirfst sehr viel mal mit zwei Würfeln. Wie sieht die Verteilung der Summe der geworfenen Würfelzahlen aus?
Vorgaben:
Simuliere möglichst zufällig sehr viele Würfe mit zwei Standardwürfel(=1-6).
Mindestens 100'000 Würfe, je mehr desto besser. -> Performanter Code
Gib aus, wie die Verteilung der Summe der beiden Würfeln prozentual/im Verhältnis aussehen
Du musst in der Lösung auf dieser Seite eine gut sicht- und interpretierbare Darstellung der Verteilung haben, damit wir die Ergebnisse vergleichen können
Beispiel:
Vorgaben:
Simuliere möglichst zufällig sehr viele Würfe mit zwei Standardwürfel(=1-6).
Mindestens 100'000 Würfe, je mehr desto besser. -> Performanter Code
Gib aus, wie die Verteilung der Summe der beiden Würfeln prozentual/im Verhältnis aussehen
Du musst in der Lösung auf dieser Seite eine gut sicht- und interpretierbare Darstellung der Verteilung haben, damit wir die Ergebnisse vergleichen können
Beispiel:
Konsolenausgabe:
1. Wurf: 1 und 5 - Summe 6
2. Wurf: 4 und 2 - Summe 6
...
100000. Wurf: 3 und 1 - Summe 4
Ergebnis:
1 - 5%
2 - 7%
12 - 6%
#1

von frfrey (370 Punkte)
- 16.03.2015 um 23:11 Uhr

import random, matplotlib.pyplot as plt n= int(raw_input("Wie oft soll gewuerfelt werden?:")) """--------------Erzeugen eines Dictionaries----------------""" d={} for i in range(2,13,1): d[i]=0 """--------------Methoden------------------------------------""" def wuerfeln(): #Simuliert den Würfelvorgang mit zwei Würfel w1=random.randrange(1,7,1) w2=random.randrange(1,7,1) az=w1+w2 return az #Rückgabe der zufälligen Augenzahl def speicher(az,d): #Speichern des gewürfelten Wertes in einem Dictionary d[az]=d[az]+1 return d #Rückgabe des aktualisierten Dictionaries def prozent(d): n=sum(d.values()) #bestimme wie oft gewürfelt wurde dp={} #erzeuzge ein neues dictionary in welchem die Prozentwerte gespeichert werden for i in range(2,13,1): dp[i]=round(d[i]/float(n)*100,2) #runde das Produkt aus z/n*100% auf die zweite Nachkomastelle return dp #Rückgabe des Dictionaries mit den Prozentwerten def graph(d): x=range(2,13,1) y=list(d.values()) plt.xlabel('Augenzahl') plt.ylabel('Anteil in %') plt.bar(x,y) plt.show() """-----------Methodenaufruf/Ausgabe----------------------------""" while n!=0: az = wuerfeln() d = speicher(az,d) n=n-1 print d dp=prozent(d) print dp """----------Graphische Ausgabe---------------------------------""" graph(dp)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1