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

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

尚
original
2019-11-23 10:20:493044parcourir

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;
    }
}

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!

Déclaration:
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