Java不重复随机数代码 java产生不同的随机数

java获取不重复随机数问题代码如下,我输出的是6个零

import java.util.Arrays;

创新互联公司凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、网站设计、成都网站制作、网站优化、软件开发、网站改版等服务,在成都十多年的网站建设设计经验,为成都上千中小型企业策划设计了网站。

public class Demo {

public static void main(String[] args) {

int number;

int[] array = new int[] { 6, 3, 12, 7, 2, 5, 20, 45, 31, 87, 11, 66, 59, 71, 21 };

int[] arr = new int[] { 0, 0, 0, 0, 0, 0 };

// 随机从数组array中抽取6个数字

int k = 0;

do {

number = (int) (Math.random() * 15);//随机的是数组的下标0~14

boolean b = true ;

for (int i = 0; i  arr.length; i++) {

if (arr[i] == array[number]) {//然后比较的时候,是用下标去找数,而不是用下标进行比较

//arr[i] = number是错的!

b=false;//如果找到有一样的数,那么判断这次随机无效,false

}

// else{ 这个else在for循环内部,for循环6次,k就循环了6次.那么这个循环do while(k6)就没办法循环了

// arr[k] = number;

// k++;

// }

}

if(b){//如果这次随机有效,那么才给arr[k]进行赋值

arr[k] = array[number];//同理,赋值 也不是 arr[k]=number .number只是随机的array的下标

k++;

}

} while (k  6);

System.out.println(Arrays.toString(arr));

}

}

输出

[59, 66, 71, 87, 20, 31]

如何让JAVA生成不重复随机数

一个不错的算法,很简单,但有效。不过如果范围比较大,则占用内存大,就不推荐使用了。个人感觉1000个以内的就可以考虑。这东西也许你早就知道了,但我依然惊叹算法的力量。看代码 import java.util.*;/** * 生成不重复随机数的一种算法。***/ public class T { public static void main(String args) { // 种子你可以随意生成,但不能重复 int seed = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int ranArr = new int; Random ran = new Random(); // 数量你可以自己定义。 for (int i = 0; i seed.length; i++) { // 得到一个位置 int j = ran.nextInt(seed.length - i); // 得到那个位置的数值 ranArr[i] = seed[j]; // 将最后一个未用的数字放到这里 seed[j] = seed[seed.length - 1 - i];} System.out.println("ranArr:" + Arrays.toString(ranArr));}} 一个运行结果

怎样用java产生一个指定范围而且不重复的随机数

public int getRandomNumber(){

Integer randomNumber = (int) (Math.random()*100);//产生0-100随机数

ListInteger list = new ArrayListInteger();

if (!list.contains(randomNumber)) {//判断是否重复,不是重复的加入集合

list.add(randomNumber);

}else {//如果产生的随机数是重复的,用递归的方法再次生成

getRandomNumber();

}

return randomNumber;

}

我想的思路如上面代码所示。

java中怎样让随机数不重复

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=0;ia.length;i++){

if(r == a[i]){

flag = false;

break;

}

}

if(flag){

a[count] = r;

System.out.println(r);

count++;

}

}

}

}

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

java中如何用random函数产生不重复的随机数?

废话不多说直接上代码!\x0d\x0aimport java.util.ArrayList;\x0d\x0aimport java.util.Random;\x0d\x0apublic class Test {\x0d\x0a public static void main(String[] args) {\x0d\x0a // 生成 [0-n) 个不重复的随机数\x0d\x0a // list 用来保存这些随机数\x0d\x0a ArrayList list = new ArrayList();\x0d\x0a int n = 10;\x0d\x0a Random rand = new Random();\x0d\x0a boolean[] bool = new boolean[n];\x0d\x0a int num = 0;\x0d\x0a for (int i = 0; i

回答于 2022-12-14

怎样用java产生一个指定范围而且不重复的随机数?

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

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

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

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

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

SetDouble set = new LinkedHashSet();

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

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

2017年8月28日 21:37:44


网页标题:Java不重复随机数代码 java产生不同的随机数
文章转载:http://csdahua.cn/article/higoed.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流