📘 IV — Exemples d’application
Simulation de lancers de pièce :
import random
def lancer_piece():
return 'pile' if random.randint(1,2)==1 else 'face'
def echantillon(n):
return sum(1 for _ in range(n) if lancer_piece()=='pile')
def freq_pile(n):
return echantillon(n) / n
for i in range(10):
print(freq_pile(100)) # proche de 0.5
Résolution du second degré :
import math
def discriminant(a,b,c): return b**2-4*a*c
def solutions(a,b,c):
d = discriminant(a,b,c)
if d < 0: return None, 'Pas de solution'
if d == 0: return (-b/(2*a),), 'Solution double'
x1 = (-b-math.sqrt(d))/(2*a)
x2 = (-b+math.sqrt(d))/(2*a)
return (x1,x2), 'Deux solutions'
print(solutions(1,-5,6)) # ((2.0, 3.0), 'Deux solutions')
💡 À retenir
• Décomposer en sous-fonctions spécialisées. Une fonction peut appeler une autre fonction. Toujours tester sur des exemples simples.