Bonjour,
Je sais pas si vous avez déjà rencontré ce problème mais je génère de grands nombres premiers aléatoires grâce à la classe BigInteger.
Cependant, le premier appel (que ce soit un grand ou un petit nombre) a généré prend énormément de temps. En l’occurrence ici 5 sec pour un nombre aléatoire de 2 bit!
Voici les résultats
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 BigInteger m; long start; long end; long time=0; SecureRandom rand = SecureRandom.getInstance("SHA1PRNG"); start = System.currentTimeMillis(); m = new BigInteger(1, rand); end = System.currentTimeMillis(); System.out.println("random number generation time was " + (end - start) + " ms."); for(int i = 1; i <= 10; i++){ m = null; start = System.currentTimeMillis(); m = new BigInteger(512, Integer.MAX_VALUE ,rand); end = System.currentTimeMillis(); time += (end-start); System.out.println("random number " + i + " generation time was " + (end - start)+ " ms."); } System.out.println("random number generation time was " + time + " ms. Average = " + (time/10) + " ms");
random number generation time was 5003 ms.
random number 1 generation time was 118 ms.
random number 2 generation time was 88 ms.
random number 3 generation time was 145 ms.
random number 4 generation time was 93 ms.
random number 5 generation time was 179 ms.
random number 6 generation time was 491 ms.
random number 7 generation time was 87 ms.
random number 8 generation time was 65 ms.
random number 9 generation time was 49 ms.
random number 10 generation time was 385 ms.
random number generation time was 1700 ms. Average = 170 ms
Aucune idée?
merci d'avance
Partager