java中怎样让随机数不重复

Python020

java中怎样让随机数不重复,第1张

java中要使生成的随机数不重复可以将已经生成的随机数放入到数组中,每次生成随机数时与数组的内容比较是否相等,相等则重新生成,不相等则存入数组。

示例代码如下(生成10之内的4个不相等的整数):

public class Demo {

    public static void main(String[] args) {

        int[] a = new int[]{-1,-1,-1,-1}//初始化数组

        Random random = new Random()

        int count = 0//记录有效的随机数个数

        while(count < a.length){

            boolean flag = true//用来标志的变量

            int r = random.nextInt(10)

            for(int i=0i<a.lengthi++){

                if(r == a[i]){

                    flag = false

                    break

                }

            }

            if(flag){

                a[count] = r

                System.out.println(r)

                count++

            }

        }

    }

}

其中的变量flag用来标志产生的随机数是否已经存在,默认值设置为true,表示不存在,flase表示该随机数已经存在。

首先,需要一个范围内的随机数,第二部判重,如果重复了就再次随机.

假设我们需要一个m到n的随机数..

需要用到random函数随机一个从0到1的数.然后再乘m到n的范围,再加m

double i = Math.random() * (m - n) + m ---->生成随机数

判重..方法有很多种了..比如我们用一个Set来存放已经存在的..

Set<Double>set = new LinkedHashSet<>()

if (set.contains(i)) { 重复了,重新随机 }

else { 向set中添加: set.add(Double.valueOf(i))}

2017年8月28日 21:37:44