from random import randrange # Die Variable wurfliste ist für den ersten Teil überflüssig. Sie dient nur der Speicherung der Würfelergebnisse für den zweiten Teil. n = 1000 def wurfhaeufigkeit(n): z = 0 h = [0 for _ in range(n+1)] for k in range(n): w = randrange(1, 7) wurfliste.append(w) if w == 6: z = z+1 for i in range(1, z+1): h[i] = h[i]+1 else: z=0 return h wurfliste = [] h = wurfhaeufigkeit(n) print(f"""Würfelsimulation Relative Häufigkeiten für die folgenden Ereignisse bei {n} Würfen: Es erscheint eine Sechs: {h[1]/n} Nach Sechs erscheint wieder Sechs: {h[2]/h[1] if h[1]>0 else "undefined"} Nach zweimal Sechs erscheint wieder Sechs: {h[3]/h[2] if h[2]>0 else "undefined"} Nach dreimal Sechs erscheint wieder Sechs: {h[4]/h[3] if h[3]>0 else "undefined"} Nach viermal Sechs erscheint wieder Sechs: {h[5]/h[4] if h[4]>0 else "undefined"}""") # Falls die Ergebnisse beispielsweise auf 7 Nachkommastellen gerundet werden sollen, ersetze etwa die dritte Zeile durch # Es erscheint eine Sechs: {h[1]/n:.7f} m = 4 # Anzahl_so_viele_Sechser_hintereinander_und_danach_kommt_ein Wurf a = [0 for i in range(m+1)] # Anzahl_so_viele_Sechser_hintereinander_und_danach_kommt_noch ein Sechser b = [0 for i in range(m+1)] for i in range(m+1): t = [6 for j in range(i)] for j in range(len(wurfliste)-i): if wurfliste[j:j+i] == t: a[i] +=1 if wurfliste[j+i] == 6: b[i] += 1 print(100*'-') for i in range(m+1): print(f'Nach {i} Mal Sechs erscheint noch eine Sechs: {b[i]/a[i] if a[i]>0 else "undefined"}') print(h[1:m+2]) print(a) print(b) print(wurfliste) if wurfliste[-1] == 6: print('Ergebnisse sollten verschieden sein.') if a[1:]==b[:-1]: print("Dasselbe Ergebnis") else: print("Ergebnisse verschieden")