创建没有重复的随机数

创建没有重复的随机数

在这种情况下,最大值只有5,所以我可以一个地检查副本,但是我如何以更简单的方式完成这个任务呢?例如,如果最大值的值为20,怎么办?谢谢。

int MAX = 5;for (i = 1 , i <= MAX; i++){
        drawNum[1] = (int)(Math.random()*MAX)+1;

        while (drawNum[2] == drawNum[1])
        {
             drawNum[2] = (int)(Math.random()*MAX)+1;
        }
        while ((drawNum[3] == drawNum[1]) || (drawNum[3] == drawNum[2]) )
        {
             drawNum[3] = (int)(Math.random()*MAX)+1;
        }
        while ((drawNum[4] == drawNum[1]) || (drawNum[4] == drawNum[2]) || (drawNum[4] == drawNum[3]) )
        {
             drawNum[4] = (int)(Math.random()*MAX)+1;
        }
        while ((drawNum[5] == drawNum[1]) ||
               (drawNum[5] == drawNum[2]) ||
               (drawNum[5] == drawNum[3]) ||
               (drawNum[5] == drawNum[4]) )
        {
             drawNum[5] = (int)(Math.random()*MAX)+1;
        }}


阿晨1998
浏览 548回答 3
3回答

九州编程

//random&nbsp;numbers&nbsp;are&nbsp;0,1,2,3&nbsp;ArrayList<Integer>&nbsp;numbers&nbsp;=&nbsp;new&nbsp;ArrayList<Integer>();&nbsp;&nbsp;&nbsp; Random&nbsp;randomGenerator&nbsp;=&nbsp;new&nbsp;Random();while&nbsp;(numbers.size()&nbsp;<&nbsp;4)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;random&nbsp;=&nbsp;randomGenerator&nbsp;.nextInt(4); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!numbers.contains(random))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers.add(random); &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java