gpt4 book ai didi

java - 用随机数填充二维数组,但确保没有数字连续重复

转载 作者:行者123 更新时间:2023-11-30 02:37:10 25 4
gpt4 key购买 nike

我试图用从 1 到最大值的随机数填充一个 2D 数组,但以这样一种方式,没有行包含多个值,并且每一行的值都按从最低到最高的顺序排列。例如:

1 3 5 6

2 4 6 7

2 2 5 9

前两行没问题,但第三行包含重复值。如何确保不会发生这种情况?任何帮助将非常感激 :)。到目前为止我想出的是:

int[][] array = new int[s][c];
for (int rows = 0; rows < array.length; rows++) {

for (int cols = 0; cols < array[rows].length; cols++) {

array[rows][cols] = (rand.nextInt(max)+1);
System.out.print(array[rows][cols]);
}
System.out.println();

我再次希望每行中的元素从最低到最高排序,但我不知道如何执行此操作!

最佳答案

在将值添加到数组之前,检查它是否已经存在:

int prevNum = 0;
while(true) {
int num = (rand.nextInt(max) + 1);
if(!(Arrays.asList(array).contains(num)) && num > prevNum && num < max - 4) {
array[rows][cols] = num;
prevNum = num;
break;
}
}

while 循环将继续执行,直到 num 不在数组中,它比前一个数字大,并且比 至少小 4 >max(因为这是第二个数组中有多少个值,我们不希望第一次尝试时有最大值),当它打破时(终止while 循环)。

关于java - 用随机数填充二维数组,但确保没有数字连续重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com