p = float(input('Probabilité d\'obtenir PILE ?\n'))
k = int(input('Nombre de joueurs ?\n'))
n = int(input('Nombre maximum de lancers ?\n'))
nsimul = int(input('Nombre de parties ?\n'))
unique = 0
import random
# Initialisation du générateur de nombres aléatoires
random.seed()
for i in range(1,nsimul+1):
    bestscore = n
    nwin = n
    for j in range(1,k+1):
        nface = 0
        tirage = 1
        ntirage = 1
        while tirage>p and ntirage<=n:
            tirage = random.random()
            if tirage > p:
                nface += 1
            ntirage += 1
        if nface < bestscore:
            nwin = 1
            bestscore = nface
        elif nface == bestscore:
            nwin += 1
    if nwin == 1:
        unique += 1
theorie = k * p * (1 - p)**(k - 1) * ( 1 - (1 - p)**(k * n)) / (1 - (1 - p)**k)
experiment = unique / nsimul
print('Valeur théorique :',theorie,'\n')
print('Valeur expérimentale :',experiment)
