Journal Random mon amour

Posté par  .
Étiquettes : aucune
0
17
mar.
2004

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  . Évalué à 2.

    c'est quoi une congruence linéaire ?
    • [^] # Re: Random mon amour

      Posté par  (site web personnel) . Évalué à 2.

      ben c'est une fonction lineaire, avec une conguence :

      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  . Évalué à 1.

        Juste pour dire.... J'y connais pas grand chose à tout ça, mais le simple fait d'avoir un journal là dessus pousse à s'informer ;-)

        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  . Évalué à 1.

        J'ai oublié de préciser qu'ici :

        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  . Évalué à 1.

        ce genre de fonction a aussi été utilisé pour de la cryptographie je crois (y a longtemps quand même :).C'est le principe du chiffrement de César

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.