幻方(Magic Square)
幻方概述
什么是幻方呢?幻方(Magic Square)就是指在n×n(n行n列)的方格里填上一些连续的数字,使任意一行、任意一列和对角线上的数字的和都相等。例如有3×3的3行3列的幻方叫三阶幻方,4×4的4行4列的幻方叫四阶幻方,5×5的5行5列的幻方叫五阶幻方等等。
幻方最早记载于中国公元前500年的春秋时期《大戴礼》中,这说明中国人民早在2500年前就已经知道了幻方的排列规律。除了“河图”,中国古代还有“洛书”之说,相传在大禹治洪水时,洛水中浮出一只大乌龟,背上有图有字,人们称之为“洛书”。
在幻方中每行、每列、每条对角线上各数的和都相等,这个和称为“幻和”。
幻和 = 总数和 ÷ 阶数
奇数幻方中,中间数 = 幻和 ÷ 阶数
由1、2、3、……等连续自然数生成的幻方为基本幻方。在此基础上各数再加或减一个相同的数,可组成由零或负数组成的新幻方。也就是说,编排n阶幻方时,不一定非要从1开始,只要是这些数能构成等差数列就可以了。
一般我们把奇数×奇数的幻方叫奇阶幻方,偶数×偶数的幻方叫偶阶幻方,填奇阶幻方和偶阶幻方的有着不同的方法。
一、奇阶幻方通用构造方法
口诀(又称为罗伯法):
一居上行正中央,
依次斜填切莫忘,
上出框界往下写,
右出框时左边放,
重复便在下格填,
出角重复一个样。
解释:
把1(或最小的数)放在第一行正中; 按以下规律排列剩下的(n×n-1)个数:
1、每一个数放在前一个数的右上一格;
2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;
3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;
4、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;
5、如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内。
三阶幻方为例子:
一居上行正中央——数字 1 放在首行最中间的格子中。如下图:
依次斜填切莫忘——向右上角斜行,依次填入数字。如下图:
上出框界往下写——如果出了上框边界,就将数字填在该列最下面空格里。如下图:
右出框时左边放——如果出了右框边界,就将数字填在该行最左空格里。如下图:
重复便在下格填——如果右上格子已填数字,就填在前一数字下面空格里。如下图:
出角重复一个样——如果朝右上角出框界,和“重复”的情况做同样处理。如下图:
最后8和9按照右出界、上出界的方法填写,如下图:
完成!
按照这种方式,完成后,做镜像或旋转对称,可得到实际相同的其他填法,如:
用该填法得到的5阶幻方:
7阶幻方:
二、偶数阶幻方
偶阶幻方的概念:一个n阶幻方,当n为偶数时,我们称幻方为偶阶幻方。
偶阶幻方分为双偶幻方和单偶幻方。当n可以被4整除时,我们称该偶阶幻方为双偶阶幻方,如8阶、12阶、16阶等;当n不可被4整除时,我们称该偶阶幻方为单偶阶幻k+2式幻方),如6阶、10阶、14阶等。偶数阶幻方的构造方法由此分为两类:双偶阶幻方和单偶阶幻方。
1.双偶阶幻方
所谓双偶阶幻方就是当阶数n可以被4整除时的偶阶幻方,即4K阶幻方。在说解法之前我们先说明一个“互补数”定义:就是在 n 阶幻方中,如果两个数的和等于幻方中最大的数与 1 的和(即 n×n+1),我们称它们为一对互补数 。例如一个8阶幻方,和为65的两数互补(8×8+1=65)
双偶阶幻方最简单的是四阶幻方,现在先看看它的制作。
第一步,画一个4×4的方格,并将数字从左到右、从上到下按顺序填入方格,如下图:
第二步,对角线上的互补的两数交换位置。根据互补的定义,四阶幻方的互补数是17(4×4+1),即对角线上两个数之和为17的数互换位置。内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角上的数字对换,小正方形四个对角上的数字对换)即(1,16)(4,13)互换(6,11)(7,10)互换即可。互换后,就是一个四阶幻方。
参见下图:
或者,或者,对角线上的数字不动,其余的数字互换。过中心点对面的数正好互补,于是将这两个数互换位置,参见下图:
这样也符合要求。
高于4阶的双偶幻方,我们先把数字按顺序填写。写好后,按4×4把它划分成k×k个方阵。因为n是4的倍数,一定能用4×4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。
下面以8阶幻方为例,第一步,画一个8×8的方格,并将1-64从左到右、从上到下按顺序填入8×8的方格,如下图:
第二步,再将8×8的方格分成四块4×4的小区
凡是被对角线划到的数字保持不动,没有划到的数字,即下图中为粉底色的数字,就是要互换位置的数字。
第三步,数字对调。怎么对调呢?两个要点:一是每个对调的数字要过中心点;二是对调的数字互补,即互换的两个数之和必须是65。
实际上,每个数字过中心点,对面只有一个数字没有被斜线划到。互换后,每行、每列及对角线数字之和都为260,幻方成立。为了帮助理解,下图中,标示了几对互换的数字。
2.单偶阶幻方
在奇数幻方、双偶幻方、单偶阶幻方三类幻方中,单偶阶幻方被认为是最复杂的幻方,但也是有规律可循的。
单偶幻方,是指阶数不能被4整除的偶阶幻方,其一般形式为n=4k+2(k=1,2,…)。
一个单偶幻方,可借助单阶幻方的构造方法,如6阶幻方,我们可以借助三阶幻方的构造方法,10阶幻方也可以借助五阶幻方的构造方法来完成。然后,再使用象限对称交换法完成。
先以6阶幻方为例
第一步,画一个6×6的方格,将其均分成四个3×3的方格,即四个3阶奇数幻方,并分别用ABCD表示。
在A区用1-9,B区用10-18,在C区用19-27,在D区用28-36完成三阶幻方的构造。
见下图:
这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。
第二步,开始交换
6阶幻方:6=4×1+2,这时k=1
(1)在A象限的中间行、中间格开始,按自左向右的方向,标出k格。A象限的其它行则标出最左边的k格。将这些格,和C象限相对位置上的数,互换位置。
(2)在B象限任一行的中间格,自右向左,标出k-1列。将B象限标出的这些数,和D象限相对位置上的数进行交换,就形成幻方。(注:6阶幻方由于k-1=0,所以不用再作B、D象限的数据交换即完成。
再看10阶幻方
第一步,画一个10×10的方格,将其均分成四个5×5的方格把方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。
第二步,开始交换
10阶幻方:10=4×2+2,这时k=2
(1)A象限的中间行、中间格开始,按自左向右的方向,标出k格。A象限的其它行则标出最左边的k格。将这些格,和C象限相对位置上的数,互换位置。
(2)在B象限任一行的中间格,自右向左,标出k-1列。将B象限标出的这些数,和D象限相对位置上的数进行交换,就形成幻方。
随便提示,幻方的构造方法并非唯一,对于同一阶数的幻方,可以采用不同的构造方法得到不同的幻方。这里介绍的是我认为比较好懂的😊。