gpt4 book ai didi

java - 如何在java中检查矩阵位置值?

转载 作者:行者123 更新时间:2023-12-02 05:26:59 26 4
gpt4 key购买 nike

给定一个填充了所有值的矩阵,需要随机提取数据以创建一个随机矩阵(每个位置都用空值初始化)。问题在于检查位置(在 randomMatrix 内)是否不同于 null,如下所示:

public void randomLogic(String[][] givenMatrix){   

for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
int positioni = this.randInt(0, 1);
int positionj = this.randInt(0, 1);
int x = this.randInt(0, 3);
int y = this.randInt(0, 2);

/*In here lies the reported issue while checking if empty. */
while (!this.randomMatrix[x][y].isEmpty()) {
x = this.randInt(0, 3);
y = this.randInt(0, 2);
this.randomMatrix[x][y] = givenMatrix[positioni][positionj];
}
}
}
}

我还尝试了以下方法:while(this.randomMatrix[x][y] != null)并且代码立即崩溃。所有的解决逻辑都按预期进行(因为如果我省略该部分,它会存在缺陷但可以工作),唯一的问题是验证。无论评估哪个职位,它总是停止工作。

还有其他方法检查矩阵位置值吗?

最佳答案

您是否试图从给定矩阵中提取随机值(因此,有些值会重复)或者您想要专门随机化给定矩阵?

如果是后者,我会采取不同的处理方式。首先,将给定矩阵的所有值收集在一个线性数组或列表中。然后,您可以随机化该数组,您将得到一个由行*列项组成的大数组,其中原始矩阵中的所有值都已随机化。

然后,您可以系统地填充新的随机矩阵,按顺序取出数组的每个元素,直到完成新矩阵的每一行和每一列。

我会选择这种方法,因为它更容易,并且会在固定的步骤数内完成;而不是随机填充位置,因为你可能会在同一个位置着陆两次来填充,并且你必须随机化,直到击中所有位置。

(此外,如果您不关心重复新矩阵的值,那么您可以每次简单地选择该数组的一个随机位置,而不是采用随机数组的每个元素)

关于java - 如何在java中检查矩阵位置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925145/

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