Maison > Java > JavaBase > le corps du texte

Comment générer des nombres uniques aléatoires en Java

Libérer: 2019-12-05 11:51:33
original
3130 Les gens l'ont consulté

Comment générer des nombres uniques aléatoires en Java

Comment générer des nombres aléatoires non répétitifs en Java :

Générer n nombres aléatoires non répétitifs basés sur min et max. (Remarque : Plage [min, max], n <= (max - min +1))

Idée :

0), mettez tous les nombres possibles du min au max Mettez dans un Liste des candidats ;

1), générer aléatoirement un index (0 <= index <= (list.size()-1));

2), selon l'index Prendre un numéro de la liste, list.get(index), et supprimez l'élément ;

Le code est le suivant :

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MyRandom {

    /**
     * 根据min和max随机生成一个范围在[min,max]的随机数,包括min和max
     * @param min
     * @param max
     * @return int
     */
    public int getRandom(int min, int max){
        Random random = new Random();
        return random.nextInt( max - min + 1 ) + min;
    }

    /**
     * 根据min和max随机生成count个不重复的随机数组
     * @param min
     * @param max
     * @param count
     * @return int[]
     */
    public int[] getRandoms(int min, int max, int count){
        int[] randoms = new int[count];
        List<Integer> listRandom = new ArrayList<Integer>();

        if( count > ( max - min + 1 )){
            return null;
        }
        // 将所有的可能出现的数字放进候选list
        for(int i = min; i <= max; i++){
            listRandom.add(i);
        }
        // 从候选list中取出放入数组,已经被选中的就从这个list中移除
        for(int i = 0; i < count; i++){
            int index = getRandom(0, listRandom.size()-1);
            randoms[i] = listRandom.get(index);
            listRandom.remove(index);
        }

        return randoms;
    }
}
Copier après la connexion

La méthode Java Math.random() est utilisée pour renvoyer un nombre aléatoire. , La plage de nombres aléatoires est 0,0 =< Math.random <

Pour plus de connaissances sur Java, veuillez prêter attention au tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal