D题的一种构造方法
容易发现 sum(ci) = sum(ri) = sum(ai,j)
0 -1 -1
1 0
? ? ? ? 4
? ? ? ? -3
? ? 1 1 2
? ? 0 -1 -1
? ? ? ? -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
? ? -1 -1 -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
0 ? -1 -1 -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
0 -1 -1 -1 -3
1 -1 1 1 2
1 -1 0 -1 -1
3 -2 1 0
第一行因为和要成为 n,所以只能全为 1;根据前一个迭代的矩阵中,可以知道第二行末尾的几个元素的情况。
剩下的元素,对于 n=4,5个方程,6个未知数,那把第二行的第一个元素强行弄成 0,剩下的就可以直接得到了。
一般化上述的做法,可以对偶数的 n 迭代,每次扩充前一个矩阵,新的一行放 1;
对于 n = 2 (右边和下面是行和与列和):
1 1 20 -1 -1
1 0
现在想办法加两行两列让 sum(ci), sum(ri) 都加一,
那就加两行,和分别为 n, -(n - 1);加两列,和分别为 n - 1, -(n - 2)。(由 n=2 中行和与列和的情况猜想)
? ? ? ? 4
? ? ? ? -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4? ? ? ? -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
? ? -1 -1 -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
0 ? -1 -1 -3
? ? 1 1 2
? ? 0 -1 -1
3 -2 1 0
->
1 1 1 1 4
0 -1 -1 -1 -3
1 -1 1 1 2
1 -1 0 -1 -1
3 -2 1 0
第一行因为和要成为 n,所以只能全为 1;根据前一个迭代的矩阵中,可以知道第二行末尾的几个元素的情况。
剩下的元素,对于 n=4,5个方程,6个未知数,那把第二行的第一个元素强行弄成 0,剩下的就可以直接得到了。
一般化上述的做法,可以对偶数的 n 迭代,每次扩充前一个矩阵,新的一行放 1;
新的另一行选个新列放个 0,放 0 的新列剩下的放 1,剩下的放 -1。