找到填充幻方的方法的数量
Find number of ways to fill the magic square
我们有一个简化的 3x3
幻方,可以用从 0
到 9
的数字重复填充。
每行元素之和必须等于每列元素之和,对角线无关。
我们需要计算填充这个方块的方法数,所以每行和每列的总和等于 N
。
设我们的矩阵为
[[a0, a1, a2],
[a3, a4, a5],
[a6, a7, a8]]
行的总和将是:
a0 + a1 + a2 = N
a3 + a4 + a5 = N
a6 + a7 + a8 = N
和列:
a0 + a3 + a6 = N
a1 + a4 + a7 = N
a2 + a5 + a8 = N
对于每个常数 N
,我们有 6 个方程式,其中包含 9 个未知数。事实证明,最后一个方程依赖于其他方程,所以我们实际上只有 5 个独立方程,因此最终有 4 个自由变量。
如果您求解给定 N 的方程组,您可以强制执行这 4 个变量,然后只需验证其余变量是否解析为 [0, 8]
范围内的整数值。这是 N=11
的示例:
a1 = 1 a5 +1 a6 +1 a8 +1 a9 -11
a2 = -1 a5 -1 a8 +11
a3 = -1 a6 -1 a9 +11
a4 = -1 a5 -1 a6 +11
a5 = arbitrary
a6 = arbitrary
a7 = -1 a8 -1 a9 +11
a8 = arbitrary
a9 = arbitrary
我们有一个简化的 3x3
幻方,可以用从 0
到 9
的数字重复填充。
每行元素之和必须等于每列元素之和,对角线无关。
我们需要计算填充这个方块的方法数,所以每行和每列的总和等于 N
。
设我们的矩阵为
[[a0, a1, a2],
[a3, a4, a5],
[a6, a7, a8]]
行的总和将是:
a0 + a1 + a2 = N
a3 + a4 + a5 = N
a6 + a7 + a8 = N
和列:
a0 + a3 + a6 = N
a1 + a4 + a7 = N
a2 + a5 + a8 = N
对于每个常数 N
,我们有 6 个方程式,其中包含 9 个未知数。事实证明,最后一个方程依赖于其他方程,所以我们实际上只有 5 个独立方程,因此最终有 4 个自由变量。
如果您求解给定 N 的方程组,您可以强制执行这 4 个变量,然后只需验证其余变量是否解析为 [0, 8]
范围内的整数值。这是 N=11
的示例:
a1 = 1 a5 +1 a6 +1 a8 +1 a9 -11
a2 = -1 a5 -1 a8 +11
a3 = -1 a6 -1 a9 +11
a4 = -1 a5 -1 a6 +11
a5 = arbitrary
a6 = arbitrary
a7 = -1 a8 -1 a9 +11
a8 = arbitrary
a9 = arbitrary