Algorithme
Marche aléatoire à 3 nœuds - Casio
Type de calculatrice

Casio

Prérequis

Théorie :

Une puce est sur le chien $1$. Elle dispose alors des chances suivantes :

  • une probabilité $0,3$ de sauter pour retomber sur le même chien $1$ ;
  • une probabilité $0,4$ de sauter sur le chien $2$ ;
  • une probabilité $0,3$ de sauter sur le chien $3$.

Si elle se retrouve sur le chien $2$, elle a :

  • une probabilité $0,3$ de sauter pour retomber sur le même chien $2$ ;
  • une probabilité $0,5$ de sauter sur le chien $3$ ;
  • une probabilité $0,2$ de sauter sur le chien $2$.

Si elle se retrouve sur le chien $3$, elle a :

  • une probabilité $0,3$ de sauter pour retomber sur le même chien $3$ ;
  • une probabilité $0,6$ de sauter sur le chien $1$ ;
  • une probabilité $0,1$ de sauter sur le chien $2$.

L’évolution du chien sur lequel elle est ($1$, $2$ ou $3$) rentre dans le cadre qu’on appelle processus de Markov et s’étudie à l’aide de matrices.

Description

Programme

  • Le programme considère une variable $X$, qui correspond au numéro du chien sur lequel la puce est et qui vaut $1$ au départ.
  • À chaque étape (saut de la puce), le programme prendra au hasard un entier $K$ entre $0$ et $9$.
  • Cet entier $K$ indiquera le chien sur lequel elle se trouvera après avoir sauté, à partir du chien sur lequel elle se trouve juste avant de sauter et en respectant les probabilités décrites en prérequis.
  • Nous traiterons $20$ sauts au total.
  • À la fin de chaque saut, le programme indiquera le numéro du saut et sur quel chien elle se trouve après ce saut.
  • Le programme attendra ensuite que l’utilisateur valide pour continuer.

Variables :

  • $X$, la position de la puce, $X$ vaut $1$ au départ, puis navigue entre les valeurs $1$, $2$ et $3$.
  • $I$, le nombre de sauts effectués par la puce, qui commence donc à $1$ et qui va jusqu’à $20$.
  • $K$, un entier tiré au sort entre $0$ et $9$.

Algorithme :

|$X=1$
|pour $I$ allant de $1$ à $20$

|$K$, un entier aléatoire entre $0$ et $9$

|si $X=1$, alors

si $K$ est dans $\lbrace0,1,2\rbrace$, $X$ reste $1$, on ne fait rien (probabilité de $\frac{3}{10}=0,3$)

|si $K$ est dans $\lbrace3,4,5,6\rbrace$, $X=2$ (probabilité de $\frac{4}{10}=0,4$)

|si $K$ est dans $\lbrace7,8,9\rbrace$, $X=3$ (probabilité de $\frac{3}{10}=0,3$)

|si $X=2$, alors

|si $K$ est dans $\lbrace3,4,5,6,7\rbrace$, $X=3$

|si $K$ est dans $\lbrace8,9\rbrace$, $X=1$

|si $X=3$, alors

|si $K$ est dans $\lbrace3,4,5,6,7,8\rbrace$, $X=1$

|si $K$ est égal à $9$, $X=2$

|afficher $I$ et $X$

Programme Casio

(note : entre parenthèses et en italique, des précisions qui ne font pas partie du programme)

$\mathsf{1}$

$\mathsf{2}$

$\mathsf{3}$

$\mathsf{4}$

$\mathsf{5}$

$\mathsf{6}$

$\mathsf{7}$

$\mathsf{8}$

$\mathsf{9}$

$\mathsf{10}$

$\mathsf{11}$

$\mathsf{12}$

$\mathsf{13}$

$\mathsf{14}$

$\mathsf{15}$

$\mathsf{16}$

$\mathsf{17}$

$\mathsf{18}$

$\mathsf{19}$

$\mathsf{20}$

$\mathsf{21}$

$\mathsf{22}$

$\mathsf{23}$

$\mathsf{24}$

$\mathsf{25}$

$\mathsf{26}$

$\mathsf{27}$

$\mathsf{28}$

$\mathsf{29}$

$\mathsf{30}$

$\mathsf{31}$

$\mathsf{32}$

$\mathsf{33}$

$\mathsf{34}$

$\mathsf{35}$

$\mathsf{36}$

$\mathsf{37}$

$\mathsf{38}$

$\mathsf{1}\rightarrow\mathsf{X}$↵

$\mathsf{For\ 1}\rightarrow\mathsf{I\ To\ 20}$↵

$\mathsf{RanInt\sharp(0,9)}\rightarrow\mathsf{K}$↵

$\mathsf{If\ X=1}$↵

$\mathsf{Then}$↵

$\mathsf{If\ K\leq6\ And\ K\geq3}$↵

$\mathsf{Then\ 2}\rightarrow\mathsf{X}$↵

$\mathsf{Else}$↵

$\mathsf{If\ K\geq7}$↵

$\mathsf{Then\ 3}\rightarrow\mathsf{X}$↵

$\mathsf{IfEnd}$↵

$\mathsf{IfEnd}$↵

$\mathsf{Else}$↵ (C’est le Else du If X=1)

$\mathsf{If\ X=2}$↵

$\mathsf{Then}$↵

$\mathsf{If\ K\leq7\ And\ K\geq3}$↵

$\mathsf{Then\ 3}\rightarrow\mathsf{X}$↵

$\mathsf{Else}$↵

$\mathsf{If\ K\geq8}$↵

$\mathsf{Then\ 1}\rightarrow\mathsf{X}$↵

$\mathsf{IfEnd}$↵

$\mathsf{IfEnd}$↵

$\mathsf{Else}$↵ (C’est le Else du If X=2, inutile de mettre If X=3)

$\mathsf{If\ K\leq8\ And\ K\geq3}$↵

$\mathsf{Then\ 1}\rightarrow\mathsf{X}$↵

$\mathsf{Else}$↵

$\mathsf{If\ K=9}$↵

$\mathsf{Then\ 2}\rightarrow\mathsf{X}$↵

$\mathsf{IfEnd}$↵

$\mathsf{IfEnd}$↵

$\mathsf{IfEnd}$↵

$\mathsf{IfEnd}$↵

"$--$"↵

"$\mathsf{SAUT\ :}$"↵

$\mathsf{I}$◄

"$\mathsf{CHIEN\ :}$"↵

$\mathsf{X}$◄

$\mathsf{Next}$

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

  • $\mathsf{1}$ $\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{OPTN}$ $\mathsf{F6}$ $\mathsf{F3}$ $\mathsf{F4}$ $\mathsf{F2}$ : $\mathsf{RanInt\sharp(}$ $\mathsf{0}$ $\mathsf{,}$ $\mathsf{9}$ $\mathsf{)}$ $\mathsf{K}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ X}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char =}$ $\mathsf{EXE}$ $\mathsf{1}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\leq}$ $\mathsf{EXE}$ $\mathsf{6}$ $\mathsf{OPTN}$ $\mathsf{F6}$ $\mathsf{F6}$ $\mathsf{F4}$ $\mathsf{F1}$ : $\mathsf{And\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\geq}$ $\mathsf{EXE}$ $\mathsf{3}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{2}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char}\geq$ $\mathsf{EXE}$ $\mathsf{7}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{3}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ X}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char =}$ $\mathsf{EXE}$ $\mathsf{2}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\leq}$ $\mathsf{EXE}$ $\mathsf{7}$ $\mathsf{OPTN}$ $\mathsf{F6}$ $\mathsf{F6}$ $\mathsf{F4}$ $\mathsf{F1}$ : $\mathsf{And\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\geq}$ $\mathsf{EXE}$ $\mathsf{3}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{3}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char}\geq$ $\mathsf{EXE}$ $\mathsf{8}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{1}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\leq}$ $\mathsf{EXE}$ $\mathsf{8}$ $\mathsf{OPTN}$ $\mathsf{F6}$ $\mathsf{F6}$ $\mathsf{F4}$ $\mathsf{F1}$ : $\mathsf{And\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char\geq}$ $\mathsf{EXE}$ $\mathsf{3}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{1}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F3}$ : $\mathsf{Else}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F1}$ : $\mathsf{If\ K}$ $\mathsf{EXIT}$ $\mathsf{EXIT}$ $\mathsf{F6}$ : $\mathsf{Char =}$ $\mathsf{EXE}$ $\mathsf{9}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F2}$ : $\mathsf{Then}$ $\mathsf{2}$ $\mathsf{X}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F4}$ : $\mathsf{IfEnd}$
  • "--"
  • "$\mathsf{SAUT\ :}$"
  • $\mathsf{I}$ $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F5}$ : ◄
  • "$\mathsf{CHIEN\ :}$"
  • $\mathsf{X}$ $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F5}$ : ◄
  • $\mathsf{SHIFT}$ $\mathsf{VARS}$ $\mathsf{F1}$ $\mathsf{F6}$ $\mathsf{F4}$ : $\mathsf{Next}$

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.
Cours associés

Calcul matriciel