我有一个8x8矩阵阵列。我想读取如图所示的矩阵值(元素)。我能做什么?
我定义了这样的数组。
public static void main(String args[]) {
int[][] myArray = new int[8][8];
int start = 0;
for (int i = 0; i<8; i++){
for (int j = 0; j<8; j++) {
myArray[i][j] = start;
start++;
}
}
}
3条答案
按热度按时间kninwzqo1#
这是我的解决办法。代码包含解释遍历算法的注解。
在不同维度上进行测试,包括一行多列和一列多列。这是8x8矩阵的输出。
olmpazwi2#
如何解决编码问题?一步一个脚印。
按照图片中的路径,让我们列出前几个整数数组下标。
您需要列出足够多的下标来查看开发的模式。
一种可能的解决方案是在不同的数组中编写下标。不幸的是,这个解决方案会将您锁定在一个8 x 8的矩阵中。
那么,让我们编写一些代码来获得矩阵的前几个值。这不是什么好代码。我们还在想办法。
如您所见,我们已经确定需要设置矩阵的宽度和高度,并且需要返回一个整数数组来保存矩阵值。
到目前为止,还不错。
更重要的是,我们看到一种模式正在发展。让我们看看下标。
这个模式重复,除了双下标重复一次、两次、三次,最多七次(宽度为1)。然后双下标重复6、5、4等次。
上排和下排总是向左移动。第一列和最后一列总是下移。
现在,在这一点上,我不确定我刚才说的是否适用于矩形矩阵。我很确定它适用于方阵。
让我们用所获得的知识编写一个助手方法。此模式是工厂模式。
一个java.awt.dimension包含一个宽度和一个高度。因此,我们定义了在代码模式中看到的四个增量。然后我们可以循环这些增量。诀窍是跟踪我们需要使用第一个和第三个(基于零的)增量增加多少次。我们得从1数到7,再倒数到1。
我已经试验了好几个小时了。这是一个很难解决的问题。我明天就去接我下班的地方。
我希望我给你的描述对你有帮助。
编辑补充:我不确定我会在其他答案中提出算法。我最终所做的就是编写一些代码来测试不同的数组大小。
这是一个测试的结果。
另一个测试
最后,对图像进行8x8测试。
这是密码。
snz8szmq3#