Java 生成随机数并存储到数组,然后检查相同的新随机数
我生成了1-10个随机数,并将其存储在一个数组中。我的问题是,我将如何首先对其进行编码,随机三次如果其中2个或全部重复,则再次随机三次,如果它们彼此不同,则保存到数组中。这是我的代码:Java 生成随机数并存储到数组,然后检查相同的新随机数,java,random,Java,Random,我生成了1-10个随机数,并将其存储在一个数组中。我的问题是,我将如何首先对其进行编码,随机三次如果其中2个或全部重复,则再次随机三次,如果它们彼此不同,则保存到数组中。这是我的代码: CODE: int min=1; int max=10; int y=0; Random rand = new Random(); for(int count=0;count<1;count++){ int randomNum = rand.nextInt((max - min) + 1) +
CODE:
int min=1;
int max=10;
int y=0;
Random rand = new Random();
for(int count=0;count<1;count++){
int randomNum = rand.nextInt((max - min) + 1) + min;
arr[count] = randomNum;
}
System.out.println(arr[0]);//for checking
System.out.println(randomNum);//for checking
代码:
int min=1;
int max=10;
int y=0;
Random rand=新的Random();
对于(int count=0;count,您可以检查数组是否包含此随机数
Arrays.asList(arr).contains(randomNum)
如果没有,则将其添加到数组中,否则将抛出异常或忽略,这取决于您的逻辑是什么
类似的问题我想:我想这就是你想要的:
public static int[] generatePureRandomIntegers(int n) {
final int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = i + 1;
}
final Random random = ThreadLocalRandom.current();
for (int i = array.length; i > 1; i--) {
swap(array, i - 1, random.nextInt(i));
}
return array;
}
private static void swap(int[] array, int i, int j) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
那么问题到底是什么?您想检查重复项吗?重复项后面跟着其他重复项吗?请重新措辞(arr[0]!=randonNum)是您问题的答案。如果您想要n个值,您应该问这个问题。也许可以添加一点关于如何以及为什么这样做的解释?
public static int[] generatePureRandomIntegers(int n) {
final int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = i + 1;
}
final Random random = ThreadLocalRandom.current();
for (int i = array.length; i > 1; i--) {
swap(array, i - 1, random.nextInt(i));
}
return array;
}
private static void swap(int[] array, int i, int j) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
int[] randomNumbers = generatePureRandomIntegers(10);
System.out.println(Arrays.toString(randomNumbers)); // [4, 6, 5, 7, 1, 10, 8, 9, 2, 3]