幻方常规解法汇总幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法奇数阶幻方(罗伯法)奇数阶幻方最经典的填法是罗伯法填写的方法是:把 1(或最小的数)放在第一行正中; 按以下规律排列剩下的(n×n-1)个数: 1、每一个数放在前一个数的右上一格; 2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; 3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; 4、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; 5、如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内例,用该填法获得的 5 阶幻方:17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9双偶数阶幻方(对称交换法)所谓双偶阶幻方就是当 n 可以被 4 整除时的偶阶幻方,即 4K 阶幻方在说解法之前我们先说明一个“ 互补数”定义:就是在 n 阶幻方中,如果两个数的和等于幻方中最大的数与 1 的和(即 n×n+1 ),我们称它们为一对互补数 。
如在三阶幻方中,每一对和为 10 的数,是一对互补数 ;在四阶幻方中,每一对和为 17 的数,是一对互补数 双偶数阶幻方的对称交换解法:先看看 4 阶幻方的填法:将数字从左到右、从上到下按顺序填写:1 2 3 45 6 7 89 10 11 1213 14 15 16内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角上的数字对换,小正方形四个对角上的数字对换)即(1,16)(4,13)互换(6,11)(7,10)互换即可16 2 3 135 11 10 89 7 6 124 14 15 1对于 n=4k 阶幻方,我们先把数字按顺序填写写好后,按 4×4 把它划分成 k×k 个方阵因为 n 是 4 的倍数,一定能用 4×4 的小方阵分割然后把每个小方阵的对角线,象制作 4 阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方 以 8 阶幻方为例: (1) 先把数字按顺序填然后,按 4×4 把它分割成 4 块(如图)1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4849 50 51 52 53 54 55 5657 58 59 60 61 62 63 64(2) 每个小方阵对角线上的数字(如左上角小方阵部分),换成和它互补的数。
64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1单偶数阶幻方(象限对称交换法)以 n=10 为例,10=4×2+2 ,这时 k=2(1)把方阵分为 A,B,C,D 四个象限,这样每一个象限肯定是奇数阶用罗伯法,依次在 A 象限,D 象限,B 象限,C 象限按奇数阶幻方的填法填数2)在 A 象限的中间行、中间格开始,按自左向右的方向,标出 k 格A 象限的其它行则标出最左边的 k 格将这些格,和 C 象限相对位置上的数,互换位置3)在 B 象限任一行的中间格,自右向左,标出 k-1 列 注:6 阶幻方由于 k-1=0,所以不用再作 B、D 象限的数据交换), 将 B 象限标出的这些数,和 D 象限相对位置上的数进行交换,就形成幻方下面是 6 阶幻方的填法:6 =4×1+2,这时 k=1。