from random import * from matplotlib import pyplot gesamtzahl_wuerfe = 0 ANZAHL_SIMULATIONEN = 1000000 def zeichneSaeulendiagramm(xWerte, yWerte, titel, xBeschriftung, yBeschriftung, xSchrittweite): # xWerte: Liste der Werte auf der horizontalen Achse # yWerte: Liste der zugehörigen Funktionswerte # titel: Titel der Graphik # xBeschriftung: Text unter der horizontalen Achse # yBeschriftung: Text links der vertikalen Achse pyplot.figure("Säulendiagramm-Fenster") pyplot.title(titel) pyplot.xlabel(xBeschriftung) pyplot.ylabel(yBeschriftung) pyplot.bar(xWerte, yWerte, color='blue') # pyplot.xticks(xWerte, xWerte, rotation='horizontal') pyplot.xticks(range(min(xWerte), max(xWerte)+1, xSchrittweite)) pyplot.tight_layout() pyplot.show() haeufigkeit_bei_dauer = [] for simulationsnummer in range(ANZAHL_SIMULATIONEN): if simulationsnummer % 100000 == 0 and simulationsnummer > 0: print(simulationsnummer, gesamtzahl_wuerfe / simulationsnummer) letzter_wurf = 'nicht definiert' vorletzter_wurf = 'nicht definiert' anzahl_wuerfe = 0 while not (letzter_wurf == 1 and vorletzter_wurf == 1): aktueller_wurf = randrange(1,3) anzahl_wuerfe = anzahl_wuerfe + 1 vorletzter_wurf = letzter_wurf letzter_wurf = aktueller_wurf while anzahl_wuerfe > len(haeufigkeit_bei_dauer) - 1: haeufigkeit_bei_dauer.append(0) haeufigkeit_bei_dauer[anzahl_wuerfe] = haeufigkeit_bei_dauer[anzahl_wuerfe] + 1 gesamtzahl_wuerfe = gesamtzahl_wuerfe + anzahl_wuerfe print(gesamtzahl_wuerfe / ANZAHL_SIMULATIONEN) # print(haeufigkeit_bei_dauer) zeichneSaeulendiagramm(range(len(haeufigkeit_bei_dauer)), haeufigkeit_bei_dauer, 'Anzahl der Experimente bei gegebener Anzahl von Würfen (Achtung, evtl. 10er-Potenzen auf vertikaler Achse)', 'Anzahl von Würfen', 'Anzahl der Experimente', 1)