一个类似于八数码的算法题,该如何处理
一个类似于八数码的算法题一个N*N的矩阵,里面的数字不一定连续(可以重复),但一定能排列成每行、每列之和都
一个类似于八数码的算法题
一个N*N的矩阵,里面的数字不一定连续(可以重复),但一定能排列成每行、每列之和都相等
在N*N的矩阵下面有两个0,代表两个空格,要求要像拼图游戏一样移动数字,
比如给定3 * 3矩阵
C/C++ code3,1,31,2,22,4,30,0
要求得出目的矩阵(列之和,行之和都为7)
C/C++ code1,3,34,1,22,3,2Step:107D8L9L6D5R2D1R4U7U10U
后面两行分别是移动的步数和移动的过程,7D表示编号第七的数字(从1开始编号,先行后列)向下移动一次,L是左,R是右,U是向上。
[解决办法]例如:
3,1,3
1,2,2
2,4,3
求和除以3 = 7
按顺序分成三行:
3 1 3
1 2 4
2 2 3
搜索第一列
3 2 2
或者
3 1 3
分别尝试其可行性。
可以得到目标矩阵。