Test de marche aléatoire
Un moyen de tester si une suite est aléatoire ou non et de la considérer comme une marche aléatoire. Une marche aléatoire est un modèle pour représenter une suite binaire dans laquelle on considère chaque valeur comme un pas en avant (pour 1) ou en arrière (pour 0). 2 tests utilisent ce modèle pour déterminer si un générateur est aléatoire ou pas.
1. Test de la somme cumulée
Le premier de ces tests concerne la distance maximale atteinte par la suite. Pour la calculer, le programme transforme tout d’abord la suite pour la coder sur (-1, 1). Il calcule ensuite les sommes partielles. Par exemple pour la suite 01001010001 codée par (-1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1) les sommes partielles calculées sont successivement -1, 0, -1, -2, -1, -2, -1, -2, -3, -4, -3. La distance maximale atteinte par la suite est donc 4. On note que cette distance n’a aucune raison d’apparaître pour la dernière somme. D’autre part la distance est évidemment calculée en valeur absolue. Deux test sont en réalité envisageable : soit en partant de gauche à droite, comme dans l’exemple précédent, soit en sens inverse : sur la même suite, les sommes partielles calculées sont alors : 1, 0, -1, -2, -1, -2, -1, -2, -3, -2, -3. On compare ces résultats à ce qui serait attendu d’une suite aléatoire : la distance maximale pas doit pas être trop grande, car elle indiquerait une mauvaise répartition des 0 et des 1. Mais elle ne doit pas non plus être trop faible, car cela indiquerait au contraire que les 0 et les 1 sont « trop bien mélangés ».
2. Test de marche aléatoire 1
Ce test calcule comme le précédent les sommes partiels de la suite codée sur (-1, 1). Cependant le test s’intéresse cette fois à la distribution du nombre de visite de chaque palier. Le test sépare la suite selon ces cycles : un cycle est une succession de valeur pour lesquels la somme partielle commence à 0 et termine à 0 (avec des valeurs non-nulles entre). Dans chaque cycle, le programme compte le nombre de fois où les valeurs -4 à -1 et 1 à 4 sont atteintes par la somme partielle (le choix de ces seules valeurs s’explique par des raisons de place mémoire principalement). Pour chacune de ces 8 valeurs v, le programme compte le nombre de cycles Cv(k) où la valeur v apparaît k fois avec k variant de 0 à 4. Le programme en déduit alors le nombre de cycle ou la valeurs v apparaît 5 fois au moins.
2. Test de marche aléatoire 1
Ce test calcule comme le précédent les sommes partiels de la suite codée sur (-1, 1). Cependant le test s’intéresse cette fois à la distribution du nombre de visite de chaque palier. Le test sépare la suite selon ces cycles : un cycle est une succession de valeur pour lesquels la somme partielle commence à 0 et termine à 0 (avec des valeurs non-nulles entre). Dans chaque cycle, le programme compte le nombre de fois où les valeurs -4 à -1 et 1 à 4 sont atteintes par la somme partielle (le choix de ces seules valeurs s’explique par des raisons de place mémoire principalement). Pour chacune de ces 8 valeurs v, le programme compte le nombre de cycles Cv(k) où la valeur v apparaît k fois avec k variant de 0 à 4. Le programme en déduit alors le nombre de cycle ou la valeurs v apparaît 5 fois au moins.
Informations sur la fiche
- Titre :
- Test de marche aléatoire
- Profil(s) :
- Enseignant & Lycéen, Ingénieur informatique, Enseignant-Chercheur, Etudiant
- Thème :
- Recommandations élémentaires
- Finalité :
- Pédagogique
- Difficulté :
- niveau 1
- Mise à jour :
- 06/03/2006
