par Nordine Bernard Toumache
Auteur : Nordine Bernart Toumache
Introduction :
Comment sont conçus les générateurs de nombres « aléatoires », que ce soit celui du tableur Excel « ALEA » ou celui de la « machine » des élèves « Rand » (si elle est en anglais), ou d’autres ? Je crois que c’est « un secret de fabrique », les manuels d’utilisation, à ma connaissance, n’aborde pas le sujet ; ils se contentent de donner les instructions à utiliser. Je ne prétends pas répondre à cette question, qui fait l’objet de recherches très pointues, mais je veux seulement proposer quelques conjectures concernant ces générateurs de nombres « aléatoires ». Il faut dire également que je ne cherche pas à savoir ce qu’est « un nombre aléatoire », d’ailleurs, à ma connaissance, il n’existe pas de définition incontestable, et mon but n’est pas de savoir s’il s’agit de nombres « aléatoires » ou « pseudo-aléatoires » ni quel est le générateur implanté dans la « machine » que j’utilise. Le lecteur curieux pourra consulter à ce sujet « Wikipédia » ou l’article Génération de nombres pseudo-aléatoires - Dubois.
Les machines dont je parle ici sont les calculatrices des élèves (Texas ou Casio), d’une part, dans lesquelles est implanté un générateur de nombres aléatoires « Rand » si elles ont pour langage l’anglais et le tableur (Excel), d’autre part, équipé du générateur « ALEA ».
Le générateur est présent et je veux juste soumettre les échantillons fournis par ce générateur à des tests afin de valider les hypothèses que je formule ici à propos de ces générateurs :
- Première hypothèse : les suites proposées sont équiréparties sur [0 ; 1[ ;
- Deuxième hypothèse : les suites proposées sont nécessairement finies ;
- Troisième hypothèse : une des applications de ces générateurs de nombres « aléatoires » de [0 ; 1[ est de générer, par la procédure « Ent(p*ALEA()) » des entiers « aléatoires » entre 0 et l’entier p-1, p≥2.
Pour cette étude, je choisis de soumettre le générateur de nombres « aléatoires » de [0 ; 1[ du tableur « Excel » aux tests que je vais décrire plus loin ; j’aurais pu choisir le générateur « Rand » de la calculatrice mais ses possibilités sont trop limitées, par rapport au tableur, pour faire ce travail avec des élèves. Par exemple, le programme qui réalise le « test du poker » y travaille pendant plus d’une heure avant de donner sa réponse, si on lui demande un échantillon de taille 10 000.
Cet article fournit également plusieurs sujets d’activités pour travailler avec des élèves de tout niveau du lycée pourvu qu’ils soient un peu familiers du tableur. Cela peut aussi être fait avec leur calculatrice mais c’est beaucoup moins commode comme je l’ai signalé plus haut. Les exercices concernant les calculs des probabilités ne s’adressent qu’aux élèves de terminale S car ils ne sont compréhensibles qu’à partir de ce niveau.
Préliminaires :
A) Définition mathématique d’une suite équirépartie sur [0 ; 1[ :
Une suite $(u_n)$ , $u_n \in [0 ~: ; ~: 1[$ est équirépartie si pour tout élément a et b de [0 ; 1[ tels que $a \leq b$, si on note $q_N$, $N \in \mathbb{N}$, le nombre des $u_p \in [a ~: ; ~: b]$ , $p \leq N$, on a : $ lim \dfrac{q_N}{N}=b-a $ .
Remarque :
On montre que les suites $nx-E(nx)$, E désignant la fonction partie entière et x un nombre irrationnel, sont équiréparties sur[0 ; 1[, il en est de même de la suite $\sqrt n -E(\sqrt n)$ dont le caractère équiréparti se démontre, contrairement aux précédentes, par des « moyens élémentaires », la démonstration étant compréhensible par un élève de terminale scientifique. Voir ce fichier :
B) Les suites engendrées par ces générateurs sont finies :
Plusieurs arguments plaident en faveur de cette hypothèse :
a) Ces suites, qui doivent subir des tests statistiques destinés à voir si elles vérifient certains critères, qu’on leur impose afin qu’elles puissent prétendre à « l’aléatoire », sont par nécessité finies ; les tests ne pouvant s’effectuer que sur un nombre fini de termes.
b) J’extrais ce qui suit d’un article sur les générateurs de nombres « pseudos aléatoires » :
(voir Génération de nombres pseudo-aléatoires-Dubois.)
1) Générateurs congruentiels linéaires
Il s’agit de l’algorithme le plus utilisé pour produire des nombres aléatoires depuis qu’il a été inventé en 1948 par D.H Lehmer.
Ce sont les suites récurrentes : $ x_{n+1} = ( a \times x_n + b) ~: \text {mod} ~: c$
Elles dépendent des constantes $ a, ~: b ~: \text {et} ~: c $ ainsi que du terme initial $ x_0$ (’seed’).
Dans tous les cas les nombres générés (sauf éventuellement le premier) sont compris entre 0 et $c-1 $.
2) Générateurs à congruence additive
C’est une généralisation des suites de Fibonnaci, chaque terme étant obtenu par une addition de deux termes pris parmi les k précédents. On dit aussi suites de Fibonnaci ’lacunaires’.
La méthode nécessite le stockage permanent de k nombres.
Naturellement on combine avec une congruence, donc :
$x_n=(x_{n-1} + x_{n-k}) ~: \text {mod} ~: c $
La méthode est rapide surtout quand c est une puissance de 2.
Mitchell et Moore, après une étude théorique poussée, ont proposé le générateur suivant :
$ x_{n+1} = ( x_{n-24} + x_{n-55} ) ~: \text{mod} ~: c$
Cette suite passe avec succès de nombreux critères de qualité.
En conclusion :
Ces générateurs engendrent des entiers de 0 à $ c-1$ et en divisant par c on obtient le générateur de réels sur [0 ; 1[.
Pour ces générateurs, les suites produites sont périodiques de période c.
Le nombre c est « grand » puisque, au bout d’une quinzaine d’heures de travail, un programme sur « TI83 » n’avait pas encore trouvé un terme égal au premier « Rand » repéré par un compteur F initialisé à 0 ; quand j’ai arrêté le programme le compteur F affichait une valeur supérieure à 1 500 000.
Ces suites sont finies mais dépendent du premier terme.
c) Un troisième argument qui plaide en faveur de cette hypothèse est fourni par la suite $\sqrt n-E(\sqrt n)$ qui est infinie et équirépartie au sens mathématique du terme ; on pourrait donc s’attendre à ce qu’elle passe avec succès tous les « tests de qualité ».
Dans le thème (4) ci-dessous, j’ai soumis la suite de chiffres fournis par la première décimale de « $ u_n $ = ALEA » au « test du maximum » qu’elle passe avec succès ; par contre je fournis, en complément dans ce thème 4, une feuille de calcul qui montre que la première décimale donnée par la suite « $ u_n $ = $ \sqrt n-E(\sqrt n)$ » ne passe pas avec succès ce test.
Les tests de validation de la première et de la troisième hypothèse.
Dans ce qui suit je m’adresse à des élèves du lycée auxquels je demande de réaliser les différents tests décrits ci-dessous. Ceux-ci sont présentés en blocs dépliables et repliables à volonté pour en faciliter la lecture.
Conclusion :
Les conjectures énoncées sont-elles validées ? La réponse est très subjective puisque je ne dispose pas de « critères chiffrés »permettant de répondre à cette question. Je laisse le lecteur juge.
Pour ma part, les tests statistiques effectués valident les conjectures énoncées et j’ai le sentiment, en utilisant les générateurs « ALEA » d’Excel ou « Rand » de la calculatrice de ne plus faire une confiance aveugle à un outil que je ne connais pas ; c’était le but de ce travail.