【发布时间】:2015-08-18 18:27:31
【问题描述】:
给定一个大小为m X n 且行或列中没有重复值的矩阵,是否有一种有效的检测周期的方法?
例如,这里是一个示例矩阵:
3 5 2 9 7 4
4 3 6 1 8 7
1 4 7 5 2 9
9 8 3 2 6 1
2 6 8 7 3 5
它至少有一个大小为 3 的置换循环:
3 5 2 9 7 4
4 8 3 1 6 7
1 4 7 5 2 9
9 6 8 2 3 1
2 3 6 7 8 5
第 2、4 和 5 行中的值 3、6 和 8 形成一个循环。
问题与Kakuro 谜题有关。与解决它们无关,而是尝试检测特定网格的任何布局是否使其不适合。任何类型的循环都会使该特定布局无效 - 因为两种布局的行和列的总和是相同的。
【问题讨论】:
-
值 3、6 和 8 如何形成循环?你能解释更多吗?我看不出与 3、6 和 8 有任何关系。
-
@PhamTrung:我认为是这样的:当你删除第一、第四和最后一列以及第一和第三行时,你会得到一个带有数字 3、6 和 8 的拉丁方格。跨度>
-
@MOehm 谢谢,现在我看到了一些连接,如果我们在一行中旋转 3、6 和 8,我们还会得到下一行的下一个排列。
-
是的,M Oehm 完全正确。而且我弄错了行号,这无济于事。感谢我的神秘编辑。
-
我注意到第 1 行和第 3 行的 2 和 7 也是一个“循环”。
标签: algorithm permutation cycle-detection