编写一个生成范围在[1,71)的整数随机数生成器,并要求3,38,34,19,59,28,37,35不被生成(Java实现)
时间: 2024-11-06 20:14:44 浏览: 26
在Java中,你可以创建一个`Random`对象并配合`ArrayList`来避开指定的数字。首先,你需要将禁用的数字存储在一个列表中,然后从剩余的范围内生成随机数。以下是一个示例:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
public class RandomNumberGenerator {
private static final int MIN = 1;
private static final int MAX = 71;
private static final int[] DISABLED_NUMBERS = {3, 38, 34, 19, 59, 28, 37, 35};
public static void main(String[] args) {
ArrayList<Integer> availableNumbers = new ArrayList<>(Arrays.asList(range(MIN, MAX)));
for (int num : DISABLED_NUMBERS) {
availableNumbers.remove(Integer.valueOf(num));
}
Random random = new Random();
while (availableNumbers.size() > 0) {
System.out.println(availableNumbers.get(random.nextInt(availableNumbers.size())));
}
}
// 辅助函数,生成指定范围内的整数数组
private static int[] range(int start, int end) {
int count = end - start + 1;
int[] numbers = new int[count];
for (int i = 0; i < count; i++) {
numbers[i] = start + i;
}
return numbers;
}
}
```
在这个程序中,我们首先生成了包含所有允许值的数组,然后遍历并移除禁止的数值。接着每次循环都从`availableNumbers`列表中随机选择一个数并打印。
阅读全文