Publié le 15/07/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Generer une suite aleatoire de chiffre sans doublon

Comment remplir un tableau d'entier avec des chiffres au hasard ?
En se servant de l'objet ArrayList et d'un tableau d'entier, les nombres sont mélangés sans qu'il y ait de doublons dans la série.

Comment remplir un tableau avec random sans doublon

Les deux techniques sont assez similaires pour ajouter des nombres dans un tableau sans avoir deux fois le meme. Avec la fonction Random, les chiffres sont pris aléatoirement dans un tableau préalablement remplit. Avec la package Collection, nous utilisons la fonction Shiffle pour mélanger les nombres contenus dans le tableau.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
 
/**
 * Générer une suite de chiffre aléatoire sans doublon
 * http://www.fobec.com/java/952/generer-une-suite-aleatoire-chiffre-sans-doublon.html
 * @author fobec 2010
 */
public class RandomGenerator {
 
    /**
     * Méthode 1 avec la fonction Random
     * @param _size
     * @return
     */
    public static int[] integerList1(int _size) {
        ArrayList<Integer> intList = new ArrayList<Integer>();
        for (int i = 1; i <= _size; i++) {
            intList.add(i);
        }
 
        int[] randomValues = new int[intList.size()];
        Random random = new Random();
        int pos = 0;
 
        while (intList.size() > 0) {
            pos = random.nextInt(intList.size());
            randomValues[intList.size() - 1] = intList.get(pos);
            intList.remove(pos);
        }
 
        return randomValues;
    }
 
    /**
     * Méthode 2 avec le package collection
     * @param _size
     * @return
     */
    public static int[] integerList2(int _size) {
        ArrayList<Integer> intList = new ArrayList<Integer>();
        for (int i = 1; i <= _size; i++) {
            intList.add(i);
        }
 
        Collections.shuffle(intList);
 
        int[] randomValues = new int[intList.size()];
        for (int i = 1; i < _size; i++) {
            randomValues[i] = intList.get(i);
        }
        return randomValues;
    } 
}

Obtenir 100 nombres aléatoires

Pour illustrer la génération de nombre aléatoire, exécutez la class ci-dessous avec les paramètres suivants.

/**
     * Exemple d'une suite de 100 chiffres aleatoires
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("Methode 1");
        int[] numList = RandomGenerator.integerList1(100);
        for (int i = 0; i < numList.length; i++) {
            System.out.println(numList[i]);
        }
        System.out.println("Methode 2");
        numList = RandomGenerator.integerList2(100);
        for (int i = 0; i < numList.length; i++) {
            System.out.println(numList[i]);
        }
    }

Cet article est un exemple pour générer des nombres aléatoires sans doublon. Une amélioration pourrait etre l'ajout d'une valeur minimale et d'une valeur maximale pour obtenir des nombres compris dans un interval.

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 - sources
Mise a jour
15/07/2010
Visualisation
vu 5859 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 265 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans news

Bonjour,
la localisation des adresses ip utilise plusieurs algo de recherche de position geographique. La precision du rapport d'analyse correspond la qualite de la localisation:
9/10 la locali...

Publié par need help dans java

Merci pour cet exemple.
Est ce possible de récupérer le flux video d'une camera ou bien une appareil photo branché par USB.

Merci d'avance.

Publié par Jacques dans CMS

Cette méthode produit une gamme de gris qui ne tient pas compte des caractéristiques de la vision humaine.
En vidéo on utilise la fonction luminance qui représente mieux les jaunes et les ve...

Publié par titi dans tuto

test de ce truc! eh ben exigeant en plus

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...