Adloun

algorithmique et programmation (première) · Chapitre 5 · Exercice de TD

Projet : simulateur de marche aléatoire

Programmation modulaire · Projets modulaires · niveau 3 (difficile)

Énoncé

Projet : simulateur de marche aléatoire. Écrire, en respectant la démarche modulaire :

  • pas() : renvoie ou avec équiprobabilité ;
  • marche(n) : renvoie la liste des positions successives d'une marche de pas partant de ;
  • amplitude(L) : l'écart entre la position maximale et minimale atteintes ;
  • etude(N, n) : simule marches de pas et renvoie la moyenne des amplitudes.

Corrigé


from random import choice

def pas():
    return choice([-1, 1])

def marche(n):
    L = [0]
    for k in range(n):
        L.append(L[-1] + pas())
    return L

def amplitude(L):
    return max(L) - min(L)

def etude(N, n):
    return sum([amplitude(marche(n)) for k in range(N)]) / N

print(etude(2000, 100))   # ~ 15 : l'amplitude croît comme rac(n),
print(etude(2000, 400))   # ~ 31 : n x 4 -> amplitude x 2 !

Quatre briques de quatre lignes ; et l'expérience révèle la loi en des marches aléatoires — la même racine carrée que la fluctuation d'échantillonnage.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre