Un algorithme fort simple mais de plus en plus rare dans les livres, s'est le fonctionnement d'une fonction de générateur aléatoire. Je n'ai, entre autre, trouvé la formule dans aucun livre à l'exception de «ALGORITHMS, 1983, Edition Addison-Wesley, par Robert Sedgewick, page 33 à 44». Voici un petit programme inspiré de se livre, permettant d'effectuer la génération de nombre aléatoire statique en Java :
- public class RandomStatic {
-
- public static final int m=100000000;
- public static final int ml=10000;
- public static final int b=31415821;
- static int a=1;
-
- public static int Mult(int p,int q) {
- int p1,p0,ql,q0;
- p1 = p / ml;
- p0 = p % ml;
- ql = q / ml;
- q0 = q % ml;
- return (((p0*ql+p1*q0) % ml)*ml+p0*q0) % m;
- }
-
- public static int Random() {
- a=(Mult(a,b)+1) % m;
- return a;
- }
-
- public static void main(String[] args) {
- System.out.print("Génération de 10 nombres aléatoires statique:\n");
- for(int I=1;I<=10;I++) System.out.print(Random()+"\n");
- }
-
- }
on obtiendra le résultat suivant :
Génération de 10 nombres aléatoires statique:31415822
40519863
62952524
25482205
90965306
70506227
6817368
12779129
29199910
45776111
Voir également
Dernière mise à jour : Mercredi, le 3 juin 2015