java 获取区间随机数_java实现生成指定区间内n个不同的随机数的方法

java实现生成指定区间内n个不同的随机数的方法

发布时间:2020-06-15 10:00:03

来源:亿速云

阅读:141

本篇文章展示了java实现生成指定区间内n个不同的随机数的方法,代码简明扼要容易理解,绝对能让你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

实现方法:

先定义长度为n的数组,然后开始用while循环生成随机数给数组赋值,在赋值之前需要先遍历数组中已经存在的值,如果存在值相等的情况,则重新生成随机数,不进行赋值,循环至定义的数组全部被赋值完。

示例如下:/**

* 功能:产生min-max中的n个不重复的随机数

*

* min:产生随机数的其实位置

* mab:产生随机数的最大位置

* n: 所要产生多少个随机数

*

*/

public static int[] randomNumber(int min,int max,int n){

//判断是否已经达到索要输出随机数的个数

if(n>(max-min+1) || max

return null;

}

int[] result = new int[n]; //用于存放结果的数组

int count = 0;

while(count

int num = (int)(Math.random()*(max-min))+min;

boolean flag = true;

for(int j=0;j

if(num == result[j]){

flag = false;

break;

}

}

if(flag){

result[count] = num;

count++;

}

}

return result;

}

利用Set的特性,元素不能重复/**

* 功能:随机指定范围内N个不重复的数

*

* @param min 指定范围最小值

* @param max 指定范围最大值

* @param n 随机数个数

*/

public static int[] randomSet(int min, int max, int n) {

Set set = new HashSet();

int[] array = new int[n];

for (; true;) {

// 调用Math.random()方法

int num = (int) (Math.random() * (max - min)) + min;

// 将不同的数存入HashSet中

set.add(num);

// 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小

if (set.size() >= n) {

break;

}

}

int i = 0;

for (int a : set) {

array[i] = a;

i++;

}

return array;

}

先将生成的随机数放入到set中,然后判断set的大小,如果没有超出需要的长度,继续循环,如果已经超出,则跳出循环,并将set转成数组。

上文描述的就是java实现生成指定区间内n个不同的随机数的方法,具体使用情况还需要大家自己动手实验使用过才能领会。如果想了解更多相关内容,欢迎关注亿速云行业资讯频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值