import numpy

epsilon = 0.01

p1 = 0.9
q1 = 0.7

def experiment():
    N = 0
    outcome = True

    p = p1
    q = q1

    while(outcome == True):
        r = numpy.random.random()
        if(r < p):#This happens with probability p
            N += 1
        else:#This happens with probability 1 - p
            outcome = False
        p -= epsilon
            
        if(outcome == True):
            r = numpy.random.random()
            if(r < q):#This happens with probability q
                N += 1
            else:#This happens with probability 1 - q
                outcome = False
            q -= epsilon

    return N

numTrials = 100000
totalThrows = 0
for i in range(0, numTrials):
    totalThrows += experiment()

averageThrows = totalThrows / numTrials

print(averageThrows)
print(p1 * (1.0 + q1) / (1.0 - (p1 * q1)))
            
