【发布时间】:2010-09-27 22:41:05
【问题描述】:
我的问题与八皇后谜题非常相似。
例如,我有一个二维数组 (N x N),如下所示:
0,0,0,0,1 y
0,0,0,0,0 |
0,0,0,0,0 V
0,0,0,1,0
0,0,0,0,0
x->
我正在水平、垂直和对角线检查 1 的出现
\,0,|,0,/
0,\,|,/,0
-,-,1,-,-
0,/,|,\,0
/,0,|,0,\
我正在考虑仅将“1”的 (x,y) 位置存储在列表中
[[4,0],[3,3]]
并以数学方式求解,用另一个 (x1,y1)(x2,y2) 检查“1”的每个位置,
如果x1 == x2 或y1 == y2 we have a collision! 如果不检查:
x2 == x1 + z;
y2 == y1 + z;
x2 == x1 - z;
y2 == y1 - z;
(???)
其中 z 是 +/- 即 ( x1+z in 0..N ) and ( y1+z in 0..N ) .......
我的问题是检查对角线碰撞,有没有更好的方法?
【问题讨论】:
-
你的意思是二维数组吗?
-
你有一个大小为 N 的二维方阵(大小为 NxN);你没有 N 维数组。