Test spectral

L'applet ci-dessous montre comment se répartissent des nombres pseudo-aléatoires obtenus par un générateur à congruence linéaire.

xn+1 = (a·xn) mod m

Vous pouvez changer le multiplicateur (a), le modulo (m) et le germe (I=x0). L'algorithme produit des nombres pseudo-aléatoires compris entre 0 et 1. En pressant le bouton "Run", vous pourrez voir la distribution de 5000 de ces nombres.

Vous pouvez choisir entre trois représentations:

Expérience

Testez les valeurs suivantes et commentez:

a m I
8 5678 5
9 5678 5
3 567 5
4 567 5
4 567 13
676 6786 45
676 6787 45
2 1000 786
4 1000 786
8 1000 786

Les nombres (a, m et I) utilisés par défaut sont ceux du (mauvais) générateur RANDU, distribué par IBM dans les années soixante. On remarque un sérieux problème en générant les points dans l'espace: c'est l'effet Marsaglia. On voit bien que les points sont situés sur des plans. En fait, tous les générateurs souffrent de cet effet (celà est dû au fait que l'on ne génère pas tous les réels, mais seulement des fractions). Plus la distance interplanaire est petite, meilleur est le générateur.


Référence


Didier Müller, 2.1.03