作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想对布置在板上的 int 数组执行对角线反射,围绕从左到右下降的对角线进行反射。这是在使用 N queens puzzle 时“翻转棋盘”的尝试。 .
n*n
n
arr[0]
表示第一行)arr[2] = 3;
表示“将皇后放在第 3 行的第 4 列”(从零开始的索引) )例子
int[] matrix = {0,2,4,1,3};
将显示为
[Q x x x x]
[x x Q x x]
[x x x x Q]
[x Q x x x]
[x x x Q x]
运行命令后
matrix = diagonalReflection(matrix);
矩阵应该是这样的(注意,反射是基于降对角线的)
[Q x x x x]
[x x x Q x]
[x Q x x x]
[x x x x Q]
[x x Q x x]
我将如何相应地交换元素以实现此结果?
更新:
我可能尝试了 5-10 种不同的方法,但这是我目前使用的方法:
public static Board diagonalReflection(Board src){
int n = src.size();
Board dest = new Board(n);
for (int i = 0; i < n; i++)
dest.set(src.get(i), i);
return dest;
}
功能说明:
Board.get(x) means "return arr[x]"
Board.set(x, y) means "arr[x] = y"
最佳答案
由于您的 int[] 矩阵
变量是一个排列,您可以使用简单的 for
循环构建反射,如下所示:
int[] reflected = new int[matrix.length];
for (int i = 0 ; i != matrix.length ; i++) {
reflected[matrix[i]] = i;
}
在您的示例矩阵
上运行此循环会产生预期的结果
{0, 3, 1, 4, 2}
关于java - int 数组的对角反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22943181/
我真的不知道这个问题以前是否有人问过(我真的找不到) 所以,我正在学习如何创建基本的颜色切换游戏(随机颜色球下降,你需要旋转轮子与相同颜色的球碰撞) 通过这种轮换,我遇到了一个非常大的问题。我需要以某
我必须找到具有 M 对角线和 M << N 的对称方 NxN 矩阵的行列式.有没有比LU分解矩阵更快的方法? 最佳答案 是的,带(ed)矩阵有特殊的方法可以解决复杂度为 O(N*M^2) 的消元问题。
我有一个列数和行数相等的二维 numpy 数组。我想将它们排列成一个更大的阵列,对角线上有较小的阵列。应该可以指定起始矩阵在对角线上的频率。例如: a = numpy.array([[5, 7],
我是一名优秀的程序员,十分优秀!