import numpy.random as rd
import numpy as np
import matplotlib.pyplot as plt

def lancers(n,p) :
    return rd.binomial(1,p,n)
    
def series(L) :
    nb = 1
    elt,i = L[0],0
    while i < len(L) :
        j = i
        while j < len(L) and L[j] == elt : # recherche de la série avec elt
            j += 1
        if j < len(L) : # une nouvelle série commence
            elt= L[j]
            nb += 1
        i = j  # on recommence depuis la fin de la série précédente
    return nb
    
def moyenne(n,p) :
    s = 0
    for _ in range(int(1e5)) :
        s += series(lancers(n,p))
    return s*1e-5
    
N = list(range(1,11))
for p in [0.1,0.4,0.6,0.8] :
    E = [moyenne(n,p) for n in N]
    plt.plot(N,E)
plt.show()