Terminale Algorithmique Pythonalgorithmesbouclessimulationprobabilités

Algorithmique et programmation

Python pour les mathématiques : boucles, fonctions, simulations probabilistes et algorithmes classiques.

Structures de base en Python

Boucle for

for i in range(n):   # i prend les valeurs 0, 1, ..., n-1
    # bloc

Boucle while

while condition:
    # bloc

Fonctions

def f(x):
    return x**2 + 1

Algorithmes mathématiques classiques

Suite par récurrence

u = 1          # u_0
for n in range(10):
    u = 0.5 * u + 1
print(u)       # approximation de la limite

Dichotomie

def dichotomie(f, a, b, eps=1e-6):
    while b - a > eps:
        m = (a + b) / 2
        if f(a) * f(m) <= 0:
            b = m
        else:
            a = m
    return (a + b) / 2

Algorithme d’Euclide

def pgcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a

Simulation probabiliste

Lancer de dé

import random

def simulation(n):
    count = 0
    for _ in range(n):
        if random.randint(1, 6) == 6:
            count += 1
    return count / n

print(simulation(10000))  # ≈ 1/6

Simulation loi binomiale

import random

def binomiale(n, p, nb_essais=10000):
    resultats = []
    for _ in range(nb_essais):
        k = sum(1 for _ in range(n) if random.random() < p)
        resultats.append(k)
    return resultats

Calcul numérique de l’intégrale (méthode des rectangles)

def integrale(f, a, b, n=1000):
    h = (b - a) / n
    s = sum(f(a + i * h) for i in range(n))
    return s * h

Bonnes pratiques

  • Utiliser des noms de variables explicites
  • Tester les cas limites
  • Commenter les blocs importants
  • Vérifier les résultats par des estimations théoriques