Testing random

Steven D'Aprano steve at pearwood.info
Sun Jun 7 21:26:28 EDT 2015


On Mon, 8 Jun 2015 06:56 am, Thomas 'PointedEars' Lahn wrote:

> You really should follow the references and brush up your math.

You really should stop being patronising to everyone and pay attention to
what is actually being said.

If you won't believe us, and you won't believe mathematics, perhaps you will
believe a simulation.


import random

def trial(size):
    return [random.randint(1, 9) for i in range(size)]

def test(trial_size, test_size):
    every_element_seen = 0
    for i in range(test_size):
        s = set(trial(trial_size))
        if len(s) == 9:
            every_element_seen += 1
    return every_element_seen/test_size


msg = "Pr(every element seen at least once) in %d trials"
for size in range(10, 100, 5):
    print(msg % size, end=' ')
    pr = test(size, 1000)
    print(pr)


When I run this simulation, I get:

Pr(every element seen at least once) in 10 trials 0.007
Pr(every element seen at least once) in 15 trials 0.109
Pr(every element seen at least once) in 20 trials 0.349
Pr(every element seen at least once) in 25 trials 0.6
Pr(every element seen at least once) in 30 trials 0.765
Pr(every element seen at least once) in 35 trials 0.868
Pr(every element seen at least once) in 40 trials 0.917
Pr(every element seen at least once) in 45 trials 0.953
Pr(every element seen at least once) in 50 trials 0.976
Pr(every element seen at least once) in 55 trials 0.981
Pr(every element seen at least once) in 60 trials 0.996
Pr(every element seen at least once) in 65 trials 0.999
Pr(every element seen at least once) in 70 trials 0.997
Pr(every element seen at least once) in 75 trials 1.0
Pr(every element seen at least once) in 80 trials 0.998
Pr(every element seen at least once) in 85 trials 1.0
Pr(every element seen at least once) in 90 trials 1.0
Pr(every element seen at least once) in 95 trials 1.0


 

-- 
Steven




More information about the Python-list mailing list