Java 生成 1 到 1000 范围内的 900 个不重复随机数
这是一个经典的算法面试题,要求输出 900 个 1 到 1000 之间不重复的随机数。实现代码如下:
public class RandomTest {
public static void main(String[] args) {
int[] result = randomNumber(1, 1000, 900);
for (int k = 0; k < result.length; k++) {
System.out.println(result[k]);
}
}
/**
* 功能:产生 1-1000 中的 900 个不重复的随机数
*
* @param min 产生随机数的起始位置
* @param max 产生随机数的最大位置
* @param n 所要产生多少个随机数
*/
public static int[] randomNumber(int min, int max, int n) {
// 判断是否已经达到索要输出随机数的个数
if (n > (max - min + 1) || max < min) {
return null;
}
int[] result = new int[n];
// 用于存放结果的数组
int count = 0;
while (count < n) {
int num = (int) (Math.random() * (max - min)) + min;
;
( ; j < n; j++) {
(num == result[j]) {
flag = ;
;
}
}
(flag) {
result[count] = num;
count++;
}
}
result;
}
}

