Adloun

Listes et simulations aléatoires

Cours complet · sciences numériques et technologie (seconde), chapitre 6 · seconde générale, SNT

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

Une liste regroupe plusieurs valeurs ordonnées dans une même structure. Associée au module random, elle permet de simuler des expériences aléatoires et d'illustrer la loi des grands nombres.

6.1 Manipuler une liste

Proposition 6.1Opérations de base sur les listes
  • créer une liste vide : L = [] ;
  • ajouter un élément à la fin : L.append(element) ;
  • longueur d'une liste : len(L) ;
  • terme de rang : L[i] ; compter les occurrences d'une valeur : L.count(v).

Une liste est une rangée de cases numérotées : les indices (orange) commencent à , si bien que le dernier élément d'une liste de longueur porte l'indice .

iRemarqueLes indices commencent à zéro

Dans une liste L de longueur , le premier élément est L[0] et le dernier est L[n-1] (aussi noté L[-1]). Écrire L[n] provoque une IndexError.

Méthode : Parcourir une liste

Deux écritures équivalentes :

  • par valeur : for element in L: donne chaque valeur ;
  • par indice : for i in range(len(L)): donne les rangs, et l'on accède à L[i].

notes = [12, 8, 15, 10]
print(len(notes))   # 4
print(notes[0])     # 12  (premier)
print(notes[-1])    # 10  (dernier)

somme = 0
for note in notes:
    somme = somme + note
print(somme / len(notes))   # Affiche : 11.25

6.2 Le module random et les simulations

ImportantNombres aléatoires

Après import random :

  • random.randint(a, b) : un entier aléatoire entre a et b inclus ;
  • random.random() : un flottant aléatoire dans .
Exemple 6.2Fonction renvoyant un nombre aléatoire et série statistique

On définit une fonction qui simule un lancer de dé, puis on constitue une série statistique en répétant son appel :


import random

def lancer():
    return random.randint(1, 6)

serie = []
for i in range(20):
    serie.append(lancer())   # 20 lancers rangés dans la liste
print(serie)

Méthode : Estimer une probabilité par simulation

  • simuler l'expérience avec random.randint (ou random.random) ;
  • la répéter fois dans une boucle, en comptant les succès de l'événement ;
  • renvoyer la fréquence , qui approche la probabilité pour grand.
Exemple 6.3Loi des grands nombres

Fréquence de « pile » (1) selon la taille de l'échantillon :


import random

def frequence_pile(N):
    nb_pile = 0
    for i in range(N):
        piece = random.randint(0, 1)   # 0 = face, 1 = pile
        if piece == 1:
            nb_pile = nb_pile + 1
    return nb_pile / N

for N in [10, 100, 1000, 10000]:
    print(N, ":", frequence_pile(N))
# Sortie possible : 10 : 0.4 / 100 : 0.53 / 1000 : 0.487 / 10000 : 0.502

Plus est grand, plus la fréquence se rapproche de la probabilité et moins elle fluctue.

Continuer sur Adloun : animation, QCM, fiches, exercices