给定两个m×n矩阵A和B,其元素属于集合S. 问题:A的行和列是否可以置换为B? 解决这个问题的算法有多复杂? 决定因素部分有帮助(当m = n时):必要条件是det(A)= +/- det(B)。
同时允许A包含与“B”的任何元素匹配的“不关心”。
此外,如果S是有限允许A元素的排列。
这不是作业 - 它与已解决的17x17拼图有关。
答案 0 :(得分:0)
请参阅下面排列矩阵的行和列的示例:
观察起始矩阵和结束矩阵。行或列中的所有元素都保留其订单已更改。行和列的相对位置变化也是一致的
例如。在起始矩阵和结束矩阵中看到1。它的行包含元素12,3和14。它的列也有5,9和2。这是在转换中保持的。
基于这个事实,我提出这个基本算法来找到给定的矩阵A,可以将其A行和列置换为矩阵B.
1. For each row in A, sort all elements in the row. Do same for B.
2. Sort all rows of A (and B) based on its columns. ie. if row1 is {5,7,16,18} and row2 is {2,4,13,15}, then put row2 above row1
3. Compare resultant matrix A' and B'.
4. If both equal, then do (1) and (2) but for columns on ORIGINAL matrix A & B instead of rows.
5. Now compare resultant matrix A'' and B''