Maths Seconde — Notion de fonction en algorithmique

Exercice 2 — Analyser ce programme :

import random, math
def freq_succes(n, p_succes):
    succes = 0
    for i in range(n):
        if random.random() < p_succes:
            succes += 1
    return succes / float(n)

n, N, p = 200, 100, 0.25
nb_bons = 0
for j in range(N):
    f = freq_succes(n, p)
    if abs(f-p) < 1/math.sqrt(n):
        nb_bons += 1
print(nb_bons/float(N))

1) Que fait freq_succes(n, p_succes) ?
2) Pourquoi random.random() < p_succes simule un succès de probabilité p_succes ?
3) Que représente nb_bons ?
4) Quelle valeur attend-on affichée ?

Agent Tom
Bonjour ! Je suis Tom, votre assistant virtuel. Comment puis-je vous aider aujourd'hui ?