最近翻了翻以前的老题,有些还是挺有意思的,值得再出一遍。如果你见过而且还记得答案,就先等一等,给别人一个机会。
魔方
难度:++++
一个 N 阶魔方是 1 到 N^2 这 N^2 个数排成一个 NXN 的正方形,使得任一行,任一列,及两对角线加起来的和都相等。下面是两个例子:
8 | 1 | 6 |
3 | 5 | 7 |
4 | 9 | 2 |
16 | 2 | 3 | 13 |
5 | 11 | 10 | 8 |
9 | 7 | 6 | 12 |
4 | 14 | 15 | 1 |
现在问能不能找到一个方法,可以很容易的写出任意阶的魔方?
I wonder whether we can solve the following equitions to get the result: SUM(Nii)=N*(N^2+1)/2, i from 1 to N Sum(Nij)=N^2*(N^2+1)/2, i and j from 1 to N Sum(Nij)=N*(N^2+1)/2, for fixed i when j changes from 1 to N Sum(Nij)=N*(N^2+1)/2, for fixed j when i changes from 1 to N. Sum (Nij)=N*(N^2+1)/2, here i and j change from 1 to N and satisfy i+j=N. There are N^2 equitions total. Solve this equition group and we can get Nij. |
要加上条件 Nij 各个不同,且都在1与N^2之间,不然 Nij=(N^2+1)/2 就行了。但加了条件就没什么办法求解了。 |
想了一下,没能完全解决,权当抛砖引玉吧。 我们可以先构建一个基本矩阵 A,A(i,j)=(i-1)*N+j. 注意到 A(i,j)+A(N+1-i,N+1-j)=N2+1。我们称 A(i,j) 与 A(N+1-i,N+1-j) 互补。 N 是奇数时比较容易,把 A 的主对角线写成新矩阵 B 的列,再安排 B 每列的次序使 B 的每行是 A 的副对角线。 如果 N=4n,可以采取交换互补数的策略,使新矩阵 B 的每行每列中恰好有 2n 个数是 A 中对应位置的互补数。 如果 N=4n+2, 还没想到怎么办。N=2 时很明显没有解。 |
欢迎光临 珍珠湾ART (http://zzwav.com/) | Powered by Discuz! X3 |