import random import matplotlib.pyplot as plt n = 200 anzahl_alben = 3 anzahl_versuche = 10000 liste_noetiger_kaeufe = [] for v in range(anzahl_versuche): if v % 1000 == 0: print(f'Versuch {v}') liste_anzahl_bilder = [0 for _ in range(n)] kaeufe = 0 while min(liste_anzahl_bilder) < anzahl_alben: kaeufe += 1 bild_nummer = random.randrange(n) liste_anzahl_bilder[bild_nummer] += 1 while len(liste_noetiger_kaeufe) < kaeufe + 1: liste_noetiger_kaeufe.append(0) liste_noetiger_kaeufe[kaeufe] += 1 print(liste_noetiger_kaeufe) liste_noetiger_kaeufe_summiert = [] summe = 0 for i in range(len(liste_noetiger_kaeufe)): summe += liste_noetiger_kaeufe[i] liste_noetiger_kaeufe_summiert.append(summe / anzahl_versuche) xwerte = list(range(len(liste_noetiger_kaeufe))) plt.bar(xwerte, liste_noetiger_kaeufe) plt.xlabel(f"x = Anzahl der Käufe, bis {anzahl_alben} Alben voll") plt.ylabel(f"y(x) = Anzahl der Experimente, bei denen x Käufe nötig waren.") plt.show() p = 0 while p < 1: i = 0 while liste_noetiger_kaeufe_summiert[i] < p: i += 1 print(f'Man muss (laut Simulation) {i} Bilder kaufen, um {anzahl_alben} Alben mit Wahrscheinlichkeit {p:.1f} zu füllen.') p += 0.1 plt.plot(liste_noetiger_kaeufe_summiert) plt.xlabel(f"x = Anzahl der Käufe") plt.ylabel(f"p(x) = Wahrscheinlichkeit, dass {anzahl_alben} Alben voll.") plt.show()