Suite à mon précédent journal, je me pose la question suivante.
La fonction random de l'implémentation de javascript de mozilla utilise la congruence linéaire suivante:
u_{n+1}=25214903917*u_n+11 mod [248-1], ce qui donne en héxadécimal
u_{n+1}=5DEECE66D*u_n+ B mod FFFFFFFFFFFF.
Visiblement, ce générateur est le générateur standard de java ( http://java.sun.com/docs/books/jls/first_edition/html/javautil.doc9.html ).
J'aimerai savoir si c'est aussi le générateur standard de javascript.
Frédéric
# Re: Random mon amour
Posté par talamasca . Évalué à 2.
[^] # Re: Random mon amour
Posté par chl (site web personnel) . Évalué à 2.
lineaire : ax + b
avec la conguence : ax + b mod c
C'est ce genre de formules qui sont souvent utilisees pour les generateurs de nombres pseudos aleatoires.
[^] # Re: Random mon amour
Posté par Gyro Gearllose . Évalué à 1.
Il semblerait que dans le journal et dans le commentaire ci-dessus il y ait une faute puisque la formule s'écrit :
x[n+1] = (a·x[n] + c) mod m
Il ne manque que les parenthèses. Sinon, c mod m est prioritaire par rapport à l'addition et donne toujours le même résultat : 11 en base 10 ou bien B en hexadécimal...
Quant-à savoir si c'est le générateur utilisé par JavaScript.... Je pense que celà dépend de la façon dont est codé le moteur JavaScript utilisé, non ? Après tout, le moteur Kjs n'est pas forcé d'utiliser la même implémentation de la fonction random que gecko, non ? Enfin, je ne suis pas sûr de ce point ? Pour moi, il suffit d'implémenter une fonction random exploitable depuis du code Js, point !
[^] # Re: Random mon amour
Posté par Gyro Gearllose . Évalué à 1.
http://www.jura.ch/lcp/cours/dm/random/congrulin.html(...)
Il y a quelques explications, en français, qui permettent de comprendre un peu la chose !
[^] # Re: Random mon amour
Posté par koxinga . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.