Bonjour,
Voila mon problème, je souhaite générer un BigInteger compris entre 2^1023 et 2^1024.
Etant donné qu'il n'existe pas de méthode dans la classe BigInteger permettant de le faire je passe par deux variables min et max.
Pour obtenir ensuite mon BigInteger borné je calcule la difference puis je dois ensuite generer un aleatoire entre 0 et ma différence puis y ajouter le min.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Random rnd = new Random(); BigInteger Max = new BigInteger(1024, rnd); BigInteger Min = new BigInteger(1023, rnd);
Or c'est la que le probleme arrive.
Mon erreur se situe a la création de var car Diff peut etre negatif et de plus Diff est bien trop grand pour etre exposant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 BigInteger Diff = Max.subtract(Min); int diff = Diff.intValue(); BigInteger var = new BigInteger(diff, rnd); var.add(Min);
Avez vous une idée pour résoudre mon problème ?
Sachant que l'objectif final est d'estimer le nombre de nombre premier dans cette borne.
Merci d'avance.
Partager