Première · Mathématiques · Chapitre 12
Algorithmique, programmation et échantillonnage
- Python
- simulation
- fluctuation
- loi des grands nombres
- Monte-Carlo
Ce que tu sauras faire
- Lire un programme Python et prédire ce qu'il affiche, en suivant les variables pas à pas
- Choisir entre une boucle bornée pour et une boucle non bornée tant que, et écrire l'une ou l'autre
- Écrire une fonction, construire une liste et la parcourir
- Simuler une expérience aléatoire avec le module random et estimer une probabilité par une fréquence
- Décrire la fluctuation d'échantillonnage observée sur des simulations d'échantillons de taille
- Énoncer et illustrer la loi des grands nombres à partir de simulations
- Estimer une aire, et le nombre , par la méthode de Monte-Carlo
- Programmer les algorithmes classiques : calcul de termes d'une suite, recherche d'un seuil, balayage
Au programme du chapitre
- Lire un programme : variables, types, affectation
- Conditions et boucles bornées
- La boucle non bornée et la recherche de seuil
- Fonctions et listes
- Simuler le hasard
- Échantillon de taille n et fluctuation d'échantillonnage
- La loi des grands nombres, vue sur des simulations
- La méthode de Monte-Carlo
- Le balayage : approcher une solution
Exercices corrigés
Exercice 1
En mathématiques, l'égalité est impossible. Pourtant, en Python, l'instruction
n = n + 1 s'écrit constamment. Explique cette différence, puis dis ce que devient n si elle vaut 7 avant l'instruction.Un coup de pouce
Demande-toi si le symbole pose une question ou donne un ordre.
Voir la correction pas à pas
Le signe
= de Python n'est pas le signe d'égalité : c'est une affectation, qui se lit « la variable de gauche reçoit la valeur de droite ». La machine procède en deux temps : elle calcule d'abord le membre de droite avec la valeur actuelle de la variable, puis elle range le résultat dans la variable, en écrasant l'ancien contenu. Si n vaut 7, la machine calcule puis range 8 dans n : après l'instruction, n vaut 8. En mathématiques, désigne un nombre fixé une fois pour toutes, et l'égalité conduirait à : elle est bien impossible. Le test d'égalité, lui, s'écrit == en Python.Exercice 2
Comment décide-t-on, avant même d'écrire la première ligne, s'il faut une boucle
for ou une boucle while ? Donne un exemple de question pour chacune.Un coup de pouce
Dans un cas, le nombre de tours est une donnée ; dans l'autre, c'est la réponse.
Voir la correction pas à pas
La question à se poser est : est-ce que je connais à l'avance le nombre de répétitions ? Si oui, la boucle est bornée et s'écrit avec
for ; si non, elle est non bornée et s'écrit avec while. Exemple de boucle bornée : « calculer la somme des 50 premiers termes d'une suite » — on sait qu'il y aura exactement 50 tours. Exemple de boucle non bornée : « au bout de combien d'années le capital dépasse-t-il 2 000 € ? » — le nombre de tours est précisément ce que l'on cherche, donc on ne peut pas l'écrire dans un range. Remarque : toute boucle for peut se réécrire en while, mais on perd en lisibilité et on prend le risque d'oublier de faire avancer le compteur.Les pièges à éviter
- Écrire
if x = 3 :dans un test. - Croire que
range(1, 10)parcourt les entiers jusqu'à 10. - Placer l'initialisation
s = 0à l'intérieur de la boucle. - Écrire une boucle
whilesans rien faire évoluer dedans.
Pour aller plus loin
Le même thème dans d’autres classes
- Simuler le hasard : fréquences, fluctuation et loi des grands nombres — Mathématiques, seconde
- Algorithmique et programmation en Python — Mathématiques, seconde
- Algorithmique et programmation — Mathématiques, troisième
Mathématiques dans les autres classes
- Mathématiques en sixième
- Mathématiques en cinquième
- Mathématiques en quatrième
- Mathématiques en troisième
- Mathématiques en seconde
- Mathématiques en terminale
- Mathématiques expertes en terminale
- Mathématiques complémentaires en terminale
Réviser autrement
- Mathématiques : toutes les révisions — de la sixième à la terminale
- Toutes les matières de la première
- Réviser le bac — les chapitres classés par épreuve
- Préparer un devoir ou un DS — tous les chapitres, toutes les classes