• [^] # Re: Une faille ?

    Posté par (site web personnel) . En réponse au journal Sortie de la bibliothèque Hasard version 0.2. Évalué à 2.

    Une page de man de rand précise que, dans In Numerical Recipes in C: The Art of Scientific Computing, il est conseillé :
    "If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in
    j = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
    and never by anything resembling
    j = 1 + (rand() % 10); (which uses lower-order bits)."

    Mais ceci n'est vrai que pour les anciennes implantations de rand. Donc, maintenant, dans la vraie vie, le modulo est suffisant pour les applications utilisant rand, qui n'ont de toute façon pas forcément besoin d'une forte source d'aléas.

    Ensuite, concernant l'exemple du dé, j'aimerai connaitre un processus déterminister qui fait mieux que le modulo pour la répartition :) D'ailleurs, si RAND_MAX est un multiple de 4, tout se passe bien !