Publié le 14/05/2014
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Generer un nombre aleatoire

Comment choisir des valeurs aléatoires avec JAVA ? Le but dans cet article est de générer une suite de chiffre qui n'a aucun lien entre eux et qui ne peut pas être reproduite. En effet les nombre aléatoires reviennent assez souvent dans les applications:
- choisir une couleur au hasard,
- générer un mot de passe,
- crypter un texte,
- ...

Générateur de nombre aléatoire avec JAVA

L'exemple ci-dessous illustre 3 manières de générer des nombre aléatoire avec les functions Random contenu dans le package util.
import java.util.Random;
 
/**
 * Générer un nombre aléatoire
 * @author Axel mai 2014
 * @see http://www.fobec.com/java/1144/generer-nombre-aleatoire.html
 */
public class RandomGenerator {
 
    /**
     * Nombre alétoire inférieur à maxValue
     * @param maxValue
     * @return valeur entre 0 et maxValue
     */
    public static int smallerThan(int maxValue) {
        Random randGen = new Random();
        int randNum = randGen.nextInt(maxValue);
        return randNum;
    }
 
    /**
     * Nombre alétoire compris entre minValue et maxValue
     * @param minValue
     * @param maxValue
     * @return valeur entre minValue et maxValue
     */
    public static int between(int minValue, int maxValue) {
        Random randGen = new Random();
        int max = maxValue - minValue + 1;
        int randNum = randGen.nextInt(max);
        randNum += minValue;
        return randNum;
    }
 
    /**
     * Nombre alétoire compris entre 0 et 1
     * @param precision nombre de décimal après la virgule
     * @return 
     */
    public static double floatVal(int precision) {
        Random randGen = new Random();
 
        double randNum = randGen.nextDouble();
        double p = (double) Math.pow(10, precision);
        double value = randNum * p;
        double tmp = Math.round(value);
        return (double) tmp / p;
    }
 
    /**
     * Exemple
     * @param args 
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 10; ++i) {
            System.out.println(RandomGenerator.smallerThan(100));
        }
        for (int i = 1; i <= 10; ++i) {
            System.out.println(RandomGenerator.between(100, 200));
        }
        for (int i = 1; i <= 10; ++i) {
            System.out.println(RandomGenerator.floatVal(9));
        }
    }
}

En exécutant la class RandomGenerator, on obtient trois types de nombres aléatoires:

Nombre aléatoire inférieur à 100
71
34
56
14
47


Nombre aléatoire compris entre 100 et 200
111
102
131
156
119


Nombre aléatoire compris entre 0 et 1, précision 3 décimales
0.683
0.289
0.429
0.327
0.695


Dans le projet en cours, j'avais besoin d'un générateur de nombre aléatoire pour sélectionner une valeur au hasard dans une liste. Un peu de mise en forme et voila le partage à la communauté sur l'excellent site de notre ami Fobec.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - class
Mise a jour
14/05/2014
Visualisation
vu 9212 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Loualfcha dans CMS

Je n'arrive pas &Atilde;&nbsp; installer le logiciel<br>Message d'erreur: DeleteFile a &Atilde;&copy;chou&Atilde;&copy;; code 5<br>Acc&Atilde;&um...

Publié par eldiablo dans java

Après recherches, il manquait simplement une ligne à cette classe et à la mienne. Il suffit d'ajouter
df.setLenient(false);
juste après
SimpleDateFormat df = new...

Publié par Tactic Rayan dans java

Merci beaucoup, c'est tres interressent, tres longtemps que j'ai recherche ce code

Publié par nicolasterraes dans tuto

bonjour,
je ne comprends pas cette tape:

Les liens vers les feuilles de style et les fichier js sont declares dans les pages HTML. Modifiez les balises meta ainsi:
Feuille de style:
d...

Publié par Axel dans java

merci Neoray pour ce commentaire
Effectivement, l'objet Calendar s'initialise sur l'heure GMT avec TimeZone.getTimeZone("UTC");
Calendar.getInstance(TimeZone.getTimeZone("...