Comment choisir au hasard un message parmi un flux dont on ne connaît pas la longueur à l'avance ?
L'échantillonnage par réservoir garde le i-ème élément avec la probabilité 1/i, à la place du précédent. À la fin, chaque élément a été choisi avec la probabilité (1/i) × (i/i + 1) × … × ((n − 1)/n) = 1/n : un produit télescopique donne un tirage uniforme sans connaître n.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
Pour un projet de NSI, je voulais afficher un message tiré au hasard parmi tous ceux postés sur un forum pendant une journée, sans savoir combien il y en aurait ni pouvoir tous les stocker. Cela semblait impossible : comment tirer uniformément sans connaître le nombre total ? J'ai découvert l'échantillonnage par réservoir, dont la preuve tient en un produit qui se simplifie.
L'enjeu et les notions du programme
Démontrer l'uniformité d'un algorithme par un produit de probabilités indépendantes qui se simplifie (produit télescopique).
Mathématiques
- Probabilités, épreuves indépendantes, produit (première)
- Raisonnement par récurrence (terminale)
- Calcul de produits, simplifications (seconde)
Numérique et sciences informatiques
- Traitement de flux de données, parcours séquentiel (première)
- Coût mémoire d'un algorithme (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minDes éléments arrivent un par un et l'on ne peut en garder qu'un seul en mémoire. On veut, à la fin, avoir choisi chacun avec la même probabilité 1/n, sans connaître n à l'avance. Problématique : est-ce possible ?
2. NSI : l'algorithme
2,5 minOn garde le premier élément. À l'arrivée du i-ème élément, on tire un nombre au hasard : avec la probabilité 1/i, on remplace l'élément gardé par le nouveau ; sinon, on garde l'ancien.
L'algorithme n'a besoin que d'une case mémoire et d'un compteur. Il fonctionne en un seul passage, quelle que soit la longueur du flux, et peut s'arrêter à tout moment : à chaque instant, l'élément gardé est uniforme parmi ceux déjà vus.
3. Mathématiques : un produit qui se simplifie
4,5 minL'élément numéro i est le choix final s'il est retenu à son arrivée (probabilité 1/i) puis n'est remplacé par aucun des suivants. Le j-ème élément ne le remplace pas avec la probabilité 1-1/j=(j-1)/j. Les tirages étant indépendants :
P=1/itimesi/(i+1)×(i+1)/(i+2)×…×(n-1)/n.Chaque numérateur se simplifie avec le dénominateur précédent : c'est un produit télescopique, qui vaut 1/itimesi/n=1/n. Tous les éléments ont la même probabilité 1/n.
Exemple avec n=4 : élément 2 : 1/2×2/3×3/4=1/4 ; élément 4 : 1/4. On peut aussi le démontrer par récurrence sur n : si chacun des n-1 premiers est gardé avec la probabilité 1/(n-1), après le n-ième chacun l'est avec 1/(n-1)×(n-1)/n=1/n, et le dernier avec 1/n.
4. Conclusion
1,5 minOn peut tirer uniformément dans un flux de longueur inconnue en gardant le i-ème élément avec la probabilité 1/i : le produit télescopique donne 1/n pour chacun. Une case mémoire suffit. J'ouvre sur la version qui garde k éléments à la fois, utilisée pour sonder les très grandes bases de données.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
n=4, i=2: 1/2×2/3×3/4=1/4
Conclusion : la réponse à la question
Tirer au hasard sans connaître la taille du flux est possible, et la preuve repose sur un produit qui se simplifie. Une idée simple de probabilités rend possible le traitement de données trop grandes pour la mémoire.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Pourquoi les tirages successifs sont-ils indépendants ?
Chaque tirage utilise un nouveau nombre aléatoire, indépendant des précédents.
Que vaut P pour le premier élément ?
1×1/2×2/3×…×(n-1)/n=1/n.
Combien de mémoire utilise l'algorithme ?
Une case pour l'élément gardé et un compteur : une mémoire constante.
Qu'est-ce qu'un produit télescopique ?
Un produit où chaque facteur annule une partie du suivant, de sorte qu'il ne reste que le début et la fin.
Comment le vérifier par simulation ?
On répète l'algorithme sur un flux de 10 éléments un grand nombre de fois et on vérifie que chaque fréquence est proche de 0,1.
Les pièges qui coûtent des points
- Remplacer avec une probabilité 1/2 à chaque fois, ce qui favorise les derniers éléments.
- Oublier la probabilité d'être retenu à l'arrivée.
- Croire qu'il faut connaître n.
Revoir les notions
Autres questions : hasard et simulation
- Comment un ordinateur, machine parfaitement déterministe, peut-il produire du hasard ?
- Comment mélanger une liste pour que tous les ordres soient vraiment équiprobables ?
- Comment simuler un dé à six faces équitable avec une simple pièce de monnaie ?
- Peut-on obtenir un tirage parfaitement équitable avec une pièce truquée dont on ignore le biais ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →