发布网友 发布时间:2024-10-24 00:46
共5个回答
热心网友 时间:2024-11-09 22:16
2种写法:
1、分5个不同区间,每个区间20个值,随机取每个区间的一个值
2、随机取0-100的5个数, 每取一个,就放到set中。直到set的size等于5就停止、
给你方法2的代码:
HashSet<Integer> hs = new HashSet<Integer>(); //hashset里面不允许有重复的值,如果有重复的值,是插不进去的(不会覆盖)
Random r = new Random();
while(hs.size()<5)
{
hs.add(r.nextInt(100));
}
热心网友 时间:2024-11-09 22:18
假设你要的精度是整数而已的话可以生成一个double然后取小数点后1~10位,每两位代表一个数(0~99)。这样比较快。
热心网友 时间:2024-11-09 22:14
用List或者数组保存
用do-while来取
热心网友 时间:2024-11-09 22:16
/**
* 生成n个small-big的不重复随机数字
*
* @param n
* 随机数字个数
* @param n
* 随机数字个数
* @return 随机数字数组
*/
public static int[] generateDifNums(int n, int small, int big) {
int length = big - small + 1;
int[] seed = new int[length];
for (int i = 0; i < length; i++) {
seed[i] = small + i;
}
int[] ranArr = new int[n];
Random ran = new Random();
for (int i = 0; i < n; i++) {
int j = ran.nextInt(length - i);
ranArr[i] = seed[j];
seed[j] = seed[length - 1 - i];
}
return ranArr;
}
学java的可以加入我的团队“java大牛”
热心网友 时间:2024-11-09 22:19
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < 5;) {
if (set.add((int)(Math.random()*100+1)))
i++;
}
System.out.println(set);