Médaille
N°1 pour apprendre & réviser du collège au lycée.
Algorithme des urnes d'Ehrenfest - Casio
Découvrez, sur SchoolMouv, des milliers de contenus pédagogiques, du CP à la Terminale, rédigés par des enseignants de l’Éducation nationale.
Les élèves de troisième, de première ou de terminale bénéficient, en plus, de contenus spécifiques pour réviser efficacement leur brevet des collèges, leur bac de français ou leur baccalauréat édition 2023.
Algorithme

Type de calculatrice

Casio

Prérequis

Théorie :

Considérons deux urnes :

  • l’une contient NN boules numérotées de 11 à NN ;
  • l’autre, aucune.

À chaque étape, on tire au hasard un nombre entier entre 11 et NN, et on change d’urne la boule portant le numéro correspondant. XX désigne le nombre de boules dans la première urne.

Description

Programme

  • Le programme, à partir d’un nombre NN de boules présentes dans la première urne, demandé à l’utilisateur, va donner au final le nombre de boules présentes dans cette même urne après 200200 tirages, selon le mode opératoire décrit en prérequis.
  • Le programme considère une variable XX qui vaut NN au départ.
  • À chacune des 200200 étapes, le programme va prendre aléatoirement un nombre KK compris entre 00 et 11.
  • Il va comparer KK au rapport XN\frac{X}{N}.
  • Si KK est inférieur à XN\frac{X}{N}, il soustraira 11 à XX (XX chances sur NN).
  • Si KK est supérieur à XN\frac{X}{N}, il ajoutera 11 à XX (NXN-X chances sur NN).
  • Ceci pour simuler le tirage au hasard d’un numéro.
  • Le programme donnera donc, à la fin de sa simulation, le nombre de boules présentes dans la première urne.

Variables

  • NN, le nombre de boules au total.
  • XX, le nombre de boules dans la première urne ; au début, X=NX=N.
  • KK, un flottant (réel) tiré au hasard dans [0,1][0,1].

Algorithme

|demander NN
|X=NX=N
|pour II allant de 11 à 200200

|KK aléatoire dans [0,1][0,1]</span

>

|si K<XNK<\dfrac{X}{N} alors

|XX devient X1X-1</span

>

|sinon

|XX devient X+1X+1</span

> |afficher XX

Programme Casio

Alt texte

Pour créer un nouveau programme, appuyer sur MENU\mathsf{MENU}, puis choisir PRGM\mathsf{PRGM}, appuyer enfin sur F3\mathsf{F3} : NEW\mathsf{NEW}.

  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F4\mathsf{F4} : ?\mathsf{?} N\mathsf{N} SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F6\mathsf{F6} F5\mathsf{F5} : ’:\mathsf{:} N\mathsf{\ N} X\mathsf{X}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F6\mathsf{F6} F1\mathsf{F1} : For\mathsf{For} 1\mathsf{1} I\mathsf{I} SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F6\mathsf{F6} F2\mathsf{F2} : To\mathsf{To} 2\mathsf{2} 0\mathsf{0} 0\mathsf{0}
  • OPTN\mathsf{OPTN} F6\mathsf{F6} F3\mathsf{F3} F4\mathsf{F4} F1\mathsf{F1} : Ran\mathsf{Ran\sharp} K\mathsf{K}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F1\mathsf{F1} : If K\mathsf{If\ K} EXIT\mathsf{EXIT} EXIT\mathsf{EXIT} F6\mathsf{F6} : Char<\mathsf{Char <} EXE\mathsf{EXE} X\mathsf{X} ÷\mathsf{\div} N\mathsf{N}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F2\mathsf{F2} : Then X\mathsf{Then\ X} \mathsf{-} 1\mathsf{1} X\mathsf{X}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F3\mathsf{F3} : Else X\mathsf{Else\ X} +\mathsf{+} 1\mathsf{1} X\mathsf{X}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F4\mathsf{F4} : IfEnd\mathsf{IfEnd}
  • SHIFT\mathsf{SHIFT} VARS\mathsf{VARS} F1\mathsf{F1} F6\mathsf{F6} F4\mathsf{F4} : Next\mathsf{Next}
  • X\mathsf{X}

Remarques

Ce programme a été réalisé et testé sur le modèle de calculatrice GRAPH 35+E.

  • Pour faire un retour de ligne, appuyer sur EXE\mathsf{EXE} .
  • Pour obtenir une lettre, appuyer d’abord sur ALPHA\mathsf{ALPHA} .
  • Pour certaines instructions, nous précisons à chaque fois l’enchaînement complet des touches pour y accéder. Toutefois, il arrive que des fonctions soient plus immédiatement disponibles lorsqu’elles font suite à un même type d’instruction. Par exemple, si vous venez d’utiliser l’instruction If\mathsf{If}, les instructions Then\mathsf{Then}, Else\mathsf{Else}, IfEnd\mathsf{IfEnd} sont toujours affichées sur l’écran ; il suffit donc d’utiliser la touche F\mathsf{F} correspondante.

Lorsque l’instruction XX devient X1X-1 s’applique, on pourrait se demander s’il existe un risque que XX devienne négatif, ce qui n’aurait plus de sens dans le contexte. Mais elle ne s’applique que si K<XNK<\frac{X}{N}, or, lorsque X=0X=0, alors XN=0\frac{X}{N}=0 et KK ne peut être strictement inférieur à 00 (un réel tiré au sort dans [0,1] a une probabilité nulle d’être strictement inférieure à 00).

Cours associés

Calcul matriciel