Anzahl der Ziehungen bis von 11 Zahlen alle gezogen wurden

Es geht im untenstehenden Code um die Anzahl der Ziehungen, die es braucht bis alle Elemente (bei uns Zahlen) aus 11 verfügbaren gezogen wurden. Dabei werden nach jeder Ziehung die Elemente wieder zurückgelegt, also man zieht bei jeder Ziehung aus allen am Beginn verfügbaren. Das folgende Python-Programm simuliert sowohl die Wartezeit bis alle 11 Zahlen gezogen wurden (1000x), berechnet aber auch die Durchschnittszeit von 1000 Ziehungen.

Anmerkung: Das Programm ist angelehnt an das Programm Ziehungen bis zum ersten Vierer beim Lotto (Simulation), von dessen Code ausgegangen und Veränderungen vorgenommen wurden.


# ZIEHUNG VON 11 ZAHLEN: DAUER BIS ALLE GEZOGEN (IM DURCHSCHNITT)
# Code von Lobnig und Melcher


import random
maxRange = 1000
summe = 0
for i in range(1, maxRange):

    tipp = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] #Zahlen meines Tipps (ohne 0 davor!)
    gewinntipp=[]
    anzahlziehungen = 0
    richtige=0
    
    while richtige<11: #solange keine 11 Richtigen, mache Ziehung und Überprüfe
        
        #Ziehung durchführen
        gezogen=random.randint(1,11)
        if not(gezogen in gewinntipp): #nur hinzufügen, wenn noch nicht gezogene Zahl gezogen
            gewinntipp.append(gezogen)
        anzahlziehungen += 1
        #print "Ziehung ", anzahlziehungen, ": ", gewinntipp
        
        #UND überprüfe bisherig gezogene Zahlen auf Richtige
        richtige = 0
        for j in gewinntipp:
            if j in tipp:
                richtige += 1
    
    #wenn 11 Richtige wird keine Ziehung mehr ausgeführt => ENDE
    print "Anzahl der bisherigen Ziehungen bis alle 11 Zahlen gezogen: ", anzahlziehungen
    
    summe = summe + anzahlziehungen
print "Durchschnitt: ", summe/maxRange