Matrix 通过交换元素将矩阵A转换为B

Matrix 通过交换元素将矩阵A转换为B,matrix,swap,Matrix,Swap,好吧,我做了这个家庭作业,我必须找到将一些矩阵A转换成另一个矩阵B的最小交换次数给定,约束条件非常有限(“矩阵上的元素可能不超过10个,矩阵也将是N=M”),这意味着它将始终是1x1矩阵和2x2矩阵(这很简单),问题在于3x3矩阵 我已经尝试通过寻找矩阵上两个元素之间的曼哈顿距离来回溯元素,这两个元素是分开的,乘以2和减-1,例如 交换的规则是:您可以交换相邻的元素,当它们共享同一行或同一列时,我们定义相邻 1 3 2 6 5 4 7 8 9 目标: 1 2 3 4 5 6 7 8 9

好吧,我做了这个家庭作业,我必须找到将一些矩阵A转换成另一个矩阵B的最小交换次数给定,约束条件非常有限(“矩阵上的元素可能不超过10个,矩阵也将是N=M”),这意味着它将始终是1x1矩阵和2x2矩阵(这很简单),问题在于3x3矩阵

我已经尝试通过寻找矩阵上两个元素之间的曼哈顿距离来回溯元素,这两个元素是分开的,乘以2和减-1,例如

交换的规则是:您可以交换相邻的元素,当它们共享同一行或同一列时,我们定义相邻

1 3 2

6 5 4

7 8 9
目标:

1 2 3

4 5 6

7 8 9
{1,3}
之间的曼哈顿距离为1,因此
2*1-1=1
,需要交换1次。 对于
{6,4}
是2,所以
2*2-1=3
,需要3次交换,然后,最终的答案是需要4次交换


但是,我的程序被自动校正器拒绝了,有什么办法解决这个问题吗?

所以代码由校正器检查,还是只检查结果?如果是代码,是否有您可能忽略的任何要求?(例如使用某些函数或语言功能)只是结果,它正在使用10种不同的配置进行测试,只有2或3种得到正确的结果。