Python :: Aufgabe #3 :: Lösung #6

17 Lösungen Lösungen öffentlich
#3

Lotto - Simulation - 6 aus 49

Anfänger - Python von Gustl - 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#6
vote_ok
von xy-no (250 Punkte) - 03.11.2015 um 14:02 Uhr
Quellcode ausblenden Python-Code
# coding: utf8
from random import randint

sechser = []
zahl, durchlauf, treffer, dreier, vierer, fuenfer = 0, 0, 0, 0, 0, 0

print '''Deine Lotto - Simulation
------------------------
Bitte gib sechs Zahlen zwischen eins und 49 ein. Die Zahlen dürfen 
sich nicht wiederholen.'''

# --- Eingabe ---
while len(sechser) < 6:
    try:
        zahl = int(input(str(len(sechser)+1) + '. Zahl: ')) 
        if zahl in range(1,50) and zahl not in sechser:
            sechser.append(zahl)
        else:
            print 'Es muss eine Zahl zwischen 1 und 49 sein'
            if len(sechser)>0:
                print 'und sie darf sich nicht wiederholen!'
                print 'Folgende Zahlen hast du bereits getippt:',
                for i in range(len(sechser)):
                    print sechser[i],
                print ''
    except:
        print 'Es muss eine Zahl zwischen 1 und 49 sein'
        if len(sechser)>0:
            print 'und sie darf sich nicht wiederholen!'
            print 'Folgende Zahlen hast du bereits getippt:',
            for i in range(len(sechser)):
                print sechser[i],
            print ''
 
print 'Dein 6er: ',
for i in range(6):
    print sorted(sechser)[i],
print ''

# --- Berechnung ---
while 1:
    zufall = []
    for i in range(6):
        while zahl in zufall or zahl == 0:
            zahl = randint(1,49)
        else:
            zufall.append(zahl)
    durchlauf += 1
    
    for i in range(6):
        if zufall[i] in sechser:
            treffer += 1
    if treffer == 3:
        dreier =+ 1
    elif treffer == 4:
        vierer += 1
    elif treffer == 5:
        fuenfer += 1
    elif treffer == 6:
        break
    treffer = 0
    
# --- Ausgabe ---
print '------------------------'
print 'Du hast nach '+ str(durchlauf) +' "Spielen" einen 6er erzielt'
print 'Chance auf einen 3er:', float(100*dreier)/durchlauf, '%'
print 'Chance auf einen 4er:', float(100*vierer)/durchlauf, '%'
print 'Chance auf einen 5er:', float(100*fuenfer)/durchlauf, '%'
#

Beispiel-Ausgabe:

Dein 6er: 1 2 3 4 5 6
------------------------
Du hast nach 9247237 "Spielen" einen 6er erzielt
Chance auf einen 3er: 1.08140409941e-05 %
Chance auf einen 4er: 0.094979722051 %
Chance auf einen 5er: 0.00192489929695 %

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2103675

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.