Algorithme
Algorithme des urnes d'Ehrenfest - Casio
Type de calculatrice

Casio

Prérequis

Théorie :

Considérons deux urnes :

  • l’une contient $N$ boules numérotées de $1$ à $N$ ;
  • l’autre, aucune.

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

Description

Programme

  • Le programme, à partir d’un nombre $N$ 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 $200$ tirages, selon le mode opératoire décrit en prérequis.
  • Le programme considère une variable $X$ qui vaut $N$ au départ.
  • À chacune des $200$ étapes, le programme va prendre aléatoirement un nombre $K$ compris entre $0$ et $1$.
  • Il va comparer $K$ au rapport $\frac{X}{N}$.
  • Si $K$ est inférieur à $\frac{X}{N}$, il soustraira $1$ à $X$ ($X$ chances sur $N$).
  • Si $K$ est supérieur à $\frac{X}{N}$, il ajoutera $1$ à $X$ ($N-X$ chances sur $N$).
  • 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

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

Algorithme

|demander $N$
|$X=N$
|pour $I$ allant de $1$ à $200$

|$K$ aléatoire dans $[0,1]$

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

|$X$ devient $X-1$

|sinon

|$X$ devient $X+1$

|afficher $X$

Programme Casio

Alt texte

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

  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F4}$ : $\mathsf{?}$ $\mathsf{N}$ $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F6}$ $\mathsf{F5}$ : ’$\mathsf{:}$’$\mathsf{\ N}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F6}$ $\mathsf{F1}$ : $\mathsf{For}$ $\mathsf{1}$ $\mathsf{I}$ $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F6}$ $\mathsf{F2}$ : $\mathsf{To}$ $\mathsf{2}$ $\mathsf{0}$ $\mathsf{0}$
  • $\mathsf{OPTN}$ $\mathsf{F6}$ $\mathsf{F3}$ $\mathsf{F4}$ $\mathsf{F1}$ : $\mathsf{Ran\sharp}$ $\mathsf{K}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char <}$ $\mathsf{EXE}$ $\mathsf{X}$ $\mathsf{\div}$ $\mathsf{N}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then\ X}$ $\mathsf{-}$ $\mathsf{1}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else\ X}$ $\mathsf{+}$ $\mathsf{1}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F6}$ $\mathsf{F4}$ : $\mathsf{Next}$
  • $\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 $\mathsf{EXE}$ .
  • Pour obtenir une lettre, appuyer d’abord sur $\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 $\mathsf{If}$, les instructions $\mathsf{Then}$, $\mathsf{Else}$, $\mathsf{IfEnd}$ sont toujours affichées sur l’écran ; il suffit donc d’utiliser la touche $\mathsf{F}$ correspondante.

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

Cours associés

Calcul matriciel