From d5d6c0e27de781c6274ca9a7e43c012e001a7c83 Mon Sep 17 00:00:00 2001 From: mantaru Date: Sun, 15 Sep 2024 14:32:48 +0200 Subject: [PATCH] ChatGPT Version entfernt --- main_chatgpt.py | 100 ------------------------------------------------ 1 file changed, 100 deletions(-) delete mode 100644 main_chatgpt.py diff --git a/main_chatgpt.py b/main_chatgpt.py deleted file mode 100644 index 4729217..0000000 --- a/main_chatgpt.py +++ /dev/null @@ -1,100 +0,0 @@ -import random -import time - - -def ziehung(): - """Simuliert eine Lottoziehung und gibt die gezogenen Zahlen zurück.""" - return sorted(random.sample(range(1, 50), 6)) - - -def nutzer_tipp(): - """Fragt den Nutzer nach seinem Tipp und gibt die Zahlen als Liste zurück.""" - while True: - try: - tipp = input("Geben Sie Ihren Tipp (6 Zahlen zwischen 1 und 49, durch Kommas getrennt) ein: ") - tipp_liste = [int(x.strip()) for x in tipp.split(',')] - if len(tipp_liste) != 6 or not all(1 <= x <= 49 for x in tipp_liste): - raise ValueError - return sorted(tipp_liste) - except ValueError: - print("Ungültige Eingabe. Bitte geben Sie genau 6 gültige Zahlen ein.") - - -def berechne_richtige(tipp, gezogene_zahlen): - """Berechnet die Anzahl der richtigen Tipps.""" - return len(set(tipp) & set(gezogene_zahlen)) - - -def lottosimulation(anzahl_simulationen): - """Führt die Lottosimulation durch und gibt die Ergebnisse aus.""" - tipp = nutzer_tipp() - ergebnisse = [0] * 7 # Index 0-6 für 0 bis 6 richtige Tipps - - start_time = time.time() - - for _ in range(anzahl_simulationen): - gezogene_zahlen = ziehung() - richtige = berechne_richtige(tipp, gezogene_zahlen) - ergebnisse[richtige] += 1 - - end_time = time.time() - laufzeit = end_time - start_time - - # Ausgabe der Ergebnisse - print("\nErgebnisse der Simulation:") - for i in range(7): - relative_haeufigkeit = ergebnisse[i] / anzahl_simulationen * 100 - print(f"{i} richtige Zahlen: {ergebnisse[i]} ({relative_haeufigkeit:.2f}%)") - - # Exakte Gewinnwahrscheinlichkeiten - exakte_wahrscheinlichkeiten = [berechne_exakte_wahrscheinlichkeit(i) for i in range(7)] - print("\nExakte Gewinnwahrscheinlichkeiten:") - for i in range(7): - abweichung = relative_haeufigkeit - exakte_wahrscheinlichkeiten[i] * 100 - print(f"{i} richtige Zahlen: {exakte_wahrscheinlichkeiten[i] * 100:.6f}% (Abweichung: {abweichung:.2f}%)") - - print(f"\nLaufzeit der Simulation: {laufzeit:.4f} Sekunden") - - -def berechne_exakte_wahrscheinlichkeit(richtige): - """Berechnet die exakte Wahrscheinlichkeit für die Anzahl der richtigen Tipps.""" - auswahl = 6 - gesamt = 49 - if richtige < 0 or richtige > 6: - return 0 - falsch = auswahl - richtige - if falsch > 6: - return 0 - # Kombinationen berechnen - kombinationen_richtig = comb(6, richtige) - kombinationen_falsch = comb(43, falsch) # 43 = 49 - 6 - gesamt_kombinationen = comb(49, 6) - return (kombinationen_richtig * kombinationen_falsch) / gesamt_kombinationen - - -def comb(n, k): - """Berechnet die Kombinationen von n über k (n choose k).""" - if k > n: - return 0 - if k == 0 or k == n: - return 1 - k = min(k, n - k) # Nutzen der Symmetrie - numer = 1 - denom = 1 - for i in range(k): - numer *= (n - i) - denom *= (i + 1) - return numer // denom - - -if __name__ == "__main__": - while True: - try: - anzahl_simulationen = int(input("Wie oft möchten Sie die Ziehung simulieren? ")) - if anzahl_simulationen <= 0: - raise ValueError - break - except ValueError: - print("Bitte geben Sie eine positive ganze Zahl ein.") - - lottosimulation(anzahl_simulationen) \ No newline at end of file