文档库 最新最全的文档下载
当前位置:文档库 › 任意阶幻方构造方法

任意阶幻方构造方法

任意阶幻方构造方法
任意阶幻方构造方法

任意阶幻方构造方法

幻方,亦称纵横图。台湾称为魔术方阵。将自然数1,2,3,……n*n排列成一个n*n方阵,使得每行、每列以及两对角线上的各个数之和都相等,等于

n/2*(n*n+1),这样的方阵称为幻方。

例如:把1,2,3,4,5,6,7,8,9填入3*3的格子,使得:每行、每列、两条对角线的和是15。

n是它的阶数,比如上面的幻方是3阶。n/2*(n*n+1)为幻方的变幻常数。数学上已经证明,对于n>2,n阶幻方都存在。

目前填写幻方的方法,是把幻方分成了三类,每类又有各种各样的填写方法。这里对于这三类幻方,仅举出一种方便手工填写的方法。

1、奇数阶幻方

n为奇数 (n=3,5,7,9,11……) (n=2*k+1,k=1,2,3,4,5……)

奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样:

把1(或最小的数)放在第一行正中;按以下规律排列剩下的n*n-1个数:

(1)、每一个数放在前一个数的右上一格;

(2)、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;

(3)、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;

(4)、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;

(5)、如果这个数所要放的格已经有数填入,处理方法同(4)。

这种写法总是先向“右上”的方向,象是在爬楼梯。

2、双偶阶幻方

n为偶数,且能被4整除 (n=4,8,12,16,20……) (n=4k,k=1,2,3,4,5……)

先说明一个定义:

互补:如果两个数字的和,等于幻方最大数和最小数的和,即 n*n+1,称为互补。

先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写:

这个方阵的对角线,已经用蓝色标出。将对角线上的数字,换成与它互补的数字。

这里,n*n+1 = 4*4+1 = 17;

把1换成17-1 = 16;把6换成17-6 = 11;把11换成17-11 = 6……换完后就是一个四阶幻方。

对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4*4把它划分成k*k个方阵。因为n是4的倍数,一定能用4*4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。

下面是8阶幻方的作法:

(1) 先把数字按顺序填。然后,按4*4把它分割成2*2个小方阵

(2) 每个小方阵对角线上的数字,换成和它互补的数。

3、单偶阶幻方

n为偶数,且不能被4整除 (n=6,10,14,18,22……) (n=4k+2,k=1,2,3,4,5……)

这是三种里面最复杂的幻方。

以n=10为例。这时,k=2

(1) 把方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用楼梯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。

(2) 在A象限的中间行、中间格开始,按自左向右的方向,标出k格。A象限的其它行则标出最左边的k格。

(3) 将这些格,和C象限相对位置上的数,互换位置。

(4) 在B象限任一行的中间格,自右向左,标出k-1列。(注:6阶幻方由于k-1=0,所以不用再作B、D象限的数据交换)

(5) 将B象限标出的这些数,和D象限相对位置上的数进行交换,就形成幻方。

2008.6.27_任意阶幻方的构造方法

任意阶幻方的构造方法 一、幻方分类 n 表示阶数 二、构造方法 以下幻方均指在n n ?(n 行n 列)的方格里,既不重复也不遗漏地填上1——2n 所构成的幻方。 1、奇数阶幻方——连续摆数法(如图一:以五阶幻方为例) ① 把1填在第一行正中; ② 把i a ()i ≤2放在1-i a 的右上一格;如:3、5、7、8、20等。 ③ 如果i a 所要放的格已超出了顶行,那么就把它放在1-i a 的右一列的最下行;如:2、9、18、25。 ④ 如果i a 所要放的格已超出了最右列,那么就把它放在1-i a 的上一行的最左列;如:4、10、17、23。 ⑤ 如果i a 所要放的格已超出了顶行且超出了最右列,那么就把它放在1-i a 的下一行的同一列的格内;如:16。 ⑥ 如果i a 所要放的格已有数填入,那么就把它放在1-i a 的下一行的同一列的格内。如:6、11、21。 图一 2、单偶数阶幻方()122+ =m n ——分区调换法(如图二:以六阶幻方为例) ① 把()122+=m n 阶的幻方均分成4个同样的小幻方A 、B 、C 、D ;如图二(a ); (注意A 、B 、C 、D 的相对位置不能改变,因为12+m 为奇数,所以A 、B 、C 、D 均为奇数阶幻方) ② 用连续摆数法在A 中填入21a ——构成幻方,同理,在B 中填入() 2221a a ——+、在

C 中填入()22312a a ——+、在 D 中填入() 22413a a ——+均构成幻方(2n a =);如图二(b ); (因为12+m 为奇数,所以A 、B 、C 、D 均为奇数阶幻方,必然可以用连续摆数法构造幻方) ③ 在A 的中间一行上从左侧的第二列起取m 个方格,在其它行上则从左侧第一列起取m 个方格,把这些方格中的数与D 中相应方格中的数字对调;如图二(c 、d ), (不管是几阶幻方,在A 中取数时都要从中间一行的左侧第二列开始;因为当6=n 时,1=m ,所以本例中只取了一个数) ④ 在C 中从最右一列起在各行中取1-m 个方格,把这些方格中的数与B 中相应方格中的数字对调。 (因为01=- m ,所以在C 中没有取数) 图二(d )即为所求幻方。 图二(a ) 图二(b ) 图二(c ) 图二(d ) 3、双偶数阶幻方m n 4=——轴对称法(如图三:以八阶幻方为例) ① 把m n 4=阶的幻方均分成4个同样的小幻方;如图三(a ) ② 在左上角的小幻方每行每列中任取一半的方格加上底色(以便于区分),然后以轴对称的形式在其它三个小幻方中标出方格;如图三(b ) (正确理解“每行每列中任取一半的方格”。本例中因为4=m ,所以在每个小幻方的每行每列上均取2个方格) ③ 从左上角的方格开始,按从左到右、从上到下的次序将1——64从小到大依次填入n 阶幻方,遇到有底色的方格跳过,计数,这样填满了没有底色的方格;如图三(c )

魔方阵

问题3.1、n –魔方阵 一、提出问题 所谓“n – 魔方阵”是指由1至n 这n 个不同整数构成的魔方阵,其魔方常数为n ( n + 1 ) / 2。例如,5 – 魔方阵和7 – 魔方阵如图3 – 1所示。易知,这两个魔方阵的魔方常数分别为15和28。 321541543 24321 52154 35432 1 ,4 3217651 76543254321762176543654321732176547654321 图3 – 1 5 – 魔方阵和7 – 魔方阵 n – 魔方阵的数字排列很有规律,若用人工的方法给出并不困难。现在要求给出:能让计算机自动输出n (≥ 3)为奇数时形如图3 – 1所示的n – 魔方阵的算法。 二、简单分析 n – 魔方阵较我们之后将要讨论的奇、偶数阶魔方阵,要简单许多。观察后不难发现: 1.要填入的n 个数字在阵列的每一行和每一列都要出现且仅出现一次,且各行(列)中的数字顺序相同,这里的顺序是指循环顺序,其中数字1接在数字n 的后面。 2.从阵列的行来看,每一行的第一个数字与它上一行正中间的数字相同。 通过对“n – 魔方阵”的分析,下面几个基本问题必须得到解决: ◆ 如何确定阵列第一行各个数字? ◆ 在填入其他行的数字时如何保证数字原有的顺序不改变同时每一行的第一个数字正好是其上一行正中间的数字? 三、设计准备 假设我们要构建的是一个n – 魔方阵,为此定义一个有n 行n 列的二维数组。 1.确定阵列第一行各个数字 这里我们处理的方法很简单,即可以利用循环方法顺序地在二维数组第一行中填写1,2,3,…,n 这n 个自然数即可。 2.填入其他行的数字,并保证数字原有的顺序不改变同时每一行的第一个数字正好是其上一行

幻方解法整理归纳

在一个由若干个排列整齐的数组成的正方形中,图中任意一横行、一纵行及对角线的几个数之和都相等,具有这种性质的图表,称为“幻方”。我国古代称为“河图”、“洛书”,又叫“纵横图”。 1、奇数阶幻方——罗伯特法(也有人称之为楼梯法)(如图一:以五阶幻方为例) 奇数阶幻方 n为奇数(n=3,5,7,9,11……) (n=2×k+1,k=1,2,3,4,5……) 奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的n×n-1个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; (3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; (4)如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; (5)如果这个数所要放的格已经有数填入,处理方法同(4)。 这种写法总是先向“右上”的方向,象是在爬楼梯。 口诀: 1居首行正中央, 依次右上莫相忘 上出格时往下放, 右出格时往左放. 排重便往自下放, 右上出格一个样 图一 2、单偶数阶幻方 ()1 2 2+ =m n ——分区调换法(如图二:以六阶幻方为例) ①把()1 2 2+ =m n阶的幻方均分成4个同样的小幻方A、B、C、D(如图二) 图二

(注意A 、B 、C 、D 的相对位置不能改变,因为12+m 为奇数,所以A 、B 、C 、D 均为奇数阶幻方) ② 用连续摆数法在A 中填入21a ——构成幻方,同理,在B 中填入()2221a a ——+、在C 中填入()22312a a ——+、在D 中填入()22413a a ——+均构成幻方(2n a =)(如图三) 图三 (因为12+m 为奇数,所以A 、B 、C 、D 均为奇数阶幻方,必然可以用连续摆数法构造幻方) ③ 在A 的中间一行上从左侧的第二列起取m 个方格,在其它行上则从左侧第一列起取m 个方格,把这些方格中的数与D 中相应方格中的数字对调(如图四): 图四 不管是几阶幻方,在A 中取数时都要从中间一行的左侧第二列开始;因为当6=n 时,1=m ,所以本例中只取了一个数) ④ 在A 中从最右一列起在各行中取1-m 个方格,把这些方格中的数与D 中相应方格中的数字对调。(如图五) 图五 3、双偶数阶幻方m n 4=——轴对称法(如图三:以八阶幻方为例) ① 把m n 4=阶的幻方均分成4个同样的小幻方(如图六) 图六

构造幻方

构造幻方 所谓幻方,也教纵横图,就是在n×n的方阵中放入1到n2个自然数:在一定的布局下,其各行、各列和两条对角线上的数字之和正好都相等。这个和数就叫做“幻方常数”或幻和。 幻方分为奇数阶幻方、偶数阶幻方(单偶阶幻方、双偶阶幻方),下面就这三类幻方的构造分别示范。 奇数阶幻方的经典方法-罗伯 奇数阶幻方,也就是3阶、5阶、7阶……幻方,那么如何构造这样的幻方呢? 我们可以采取罗伯法(也叫连续摆数法),其法则如下: 把“1”放在中间一列最上边的方格中,从它开始,按对角线方向(比如说按从左下到右上的方向)顺次把由小到大的各数放入各方格中,如果碰到顶,则折向底,如果到达右侧,则转向左侧,如果进行中轮到的方格中已有数或到达右上角,则退至前一格的下方。 按照这一法则建立5阶幻方的示例如下图: 罗伯法(连续摆数法)的助记口诀: 1居上行正中央,依次斜填切莫忘。 上出框界往下写,右出框时左边放。 重复便在下格填,角上出格一个样。 1居上行正中央——数字1放在首行最中间的格子中 依次斜填切莫忘——向右上角斜行,依次填入数字 上出框界往下写——如果右上方向出了上边界,就以出框后的虚拟方格位置为基准,将数字竖直降落至底行对应的格子中 右出框时左边放——同上,向右出了边界,就以出框后的虚拟方格位置为基准,将数字平移至最左列对应的格子中 重复便在下格填——如果数字{N}右上的格子已被其它数字占领,就将{N +1}填写在{N}下面的格子中 角上出格一个样——如果朝右上角出界,和“重复”的情况做同样处理。

偶数阶幻方的一种制作方法——双偶阶、单偶阶幻方 1.双偶阶幻方(中心对称交换法) n为偶数,且能被4整除(n=4,8,12,16,20……)(n=4k,k=1,2,3,4,5……) 先说明一个定义。互补:如果两个数字的和,等于幻方最大数和最小数的和,即n×n+1,称为互补。 先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写: 这个方阵的对角线,已经用颜色标出。将对角线上的数字,换成与它互补(同色)的数字。 这里,n×n+1=4×4+1=17;把1换成17-1=16;把6换成17-6=11;把11 换成17-11=6……换完后就是一个四阶幻方。 对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4×4把它划分成k×k个方阵。因为n是4的倍数,一定能用4×4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。

幻方填入规律

n是它的阶数,比如上面的幻方是3阶。n/2*(n*n+1)为幻方的变幻常数。数学上已经证明,对于n>2,n阶幻方都存在。目前填写幻方的方法,是把幻方分成了三类,每类又有各种各样的填写方法。这里对于这三类幻方,仅举出一种方便手工填写的方法。 1、奇数阶幻方 n为奇数(n=3,5,7,9,11……) (n=2*k+1,k=1,2,3,4,5……) 奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样:把1(或最小的数)放在第一行正中;按以下规律排列剩下的n*n-1个数:(1)、每一个数放在前一个数的右上一格;(2)、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;(3)、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;(4)、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;(5)、如果这个数所要放的格已经有数填入,处理方法同(4)。这种写法总是先向“右上”的方向,象是在爬楼梯。 2、双偶阶幻方

方阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 (2) 每个小方阵对角线上的数字,换成和它互补的数。 单偶阶幻方 n为偶数,且不能被4整除(n=6,10,14,18,22……) (n=4k+2,k=1,2,3,4,5……) 这是三种里面最复杂的幻方。 以n=10为例。这时,k=2 (1) 把方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用楼梯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。

偶数阶幻方

偶数阶幻方的一种制作方法-双偶阶、单偶阶幻方 1. 双偶阶幻方(对称交换法) n为偶数,且能被4整除(n=4,8,12,16,20……) (n=4k,k=1,2,3,4,5……) 先说明一个定义。互补:如果两个数字的和,等于幻方最大数和最小数的和,即 n×n+1,称为互补。 先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写: 这个方阵的对角线,已经用颜色标出。将对角线上的数字,换成与它互补(同色)的数字。 这里,n×n+1 = 4×4+1 = 17;把1换成17-1 = 16;把6换成17-6 = 11;把11换成17-11 = 6……换完后就是一个四阶幻方。 对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4×4把它划分成k×k个方阵。因为n是4的倍数,一定能用4×4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。

2. 单偶阶幻方(斯特雷奇Ralph Strachey法) n为偶数,且不能被4整除(n=6,10,14,18,22……) (n=4k+2,k=1,2,3,4,5……) 这是三种里面最复杂的幻方。 以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象限标出的这

幻方常规解法汇总

幻方常规解法汇总 没法,组合数学还考幻方构造。这东西不看解法真不会写,虽然没见有啥用,但还是记录下,免得日后再找。按目前填写幻方的方法,是把幻方分成了三类,即奇数阶幻方、双偶阶幻方、单偶阶幻方。下面按这三类幻方,列出最常用解法(考试用,不求强大,只求有效!)。 奇数阶幻方(罗伯法) 奇数阶幻方最经典的填法是罗伯法。填写的方法是: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数: 1、每一个数放在前一个数的右上一格; 2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; 3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; 4、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; 5、如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内。 例,用该填法获得的5阶幻方: 双偶数阶幻方(对称交换法) 所谓双偶阶幻方就是当n可以被4整除时的偶阶幻方,即4K阶幻方。在说解法之前我们先说明一个“互补数”定义:就是在n 阶幻方中,如果两个数的和等于幻方中最大的数与 1 的和(即n×n+1),我们称它们为一对互补数。如在三阶幻方中,每一对和为10 的数,是一对互补数;在四阶幻方中,每一对和为17 的数,是一对互补数。 双偶数阶幻方的对称交换解法: 先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写: 内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角上的数字对换,小正方形四个对角上的数字对换)即(16,11)(7,10)互换即可。 对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4×4把它划分成k×k个方阵。因为n是4的倍数,一定能用4×4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。 以8阶幻方为例: (1) 先把数字按顺序填。然后,按

第11讲简单的幻方及其他数阵图

第十一讲简单的幻方及其他数阵图 有关幻方问题的研究在我国已流传了两千多年,它是具有独特形式的填数字问题.宋朝的杨辉将幻方命名为“纵横图.”并探索出一些解答幻方问题的方法.随着历史的进展,许多人对幻方做了进一步的研究,创造了许多绚丽多彩的幻方. 据传说在夏禹时代,洛水中出现过一只神龟,背上有图有文,后人称它为“洛书”. 洛书所表示的幻方是在3×3的方格子里(即三行三列),按一定的要求填上1~9这九个数,使每行、每列、及二条对角线上各自三数之和均相等,这样的3×3的数阵阵列称为三阶幻方. 一般地说,在n×n(n行n列)的方格里,既不重复又不遗漏地填上n2个连续的自然数(一般从1开始,也可不从1开始)每个数占一格,并使排在任一行、任一列和两条对角线上的n个自然数的和都相等,这样的数表叫做n阶幻方.这个和叫做幻和,n叫做阶. 杨辉在《续古摘奇算法》中,总结洛书幻方构造方法时写到:“九子排列,上、下对易,左右相更,四维挺出.”现用下图对这四句话进行解释. 九子排列上、下对易左右相更四维挺出 怎样构造幻方呢?一般方法是先求幻和,再求中间位置的数,最后根据奇、偶情况试填其他方格内的数. 下面我们就来介绍一些简单的幻方. 例1 将1~9这九个数,填入下左图中的方格中,使每行、每列、两条对角线上三个数字的和都相等.

分析为了便于叙述,先用字母表示图中要填写的数字.如上右图所示. 解答这个题目,可以分三步解决: ①先求出每行、每列三个数的和是多少? ②再求中间位置的数是多少?此题是求E=? ③最后试填其他方格里的数. ∵A+B+C+D+E+F+G+H+I =1+2+3+4+5+6+7+8+9 =45. ∴A+B+C=D+E+F=G+H+I=15. ∴B+E+H=A+E+I=C+E+G=15. ∴A+B+C+D+E+F+G+H+I+3E =(A+E+I)(B+E+H)+(C+E+G)+(D+E+F) =15X4. 45+3E=60 3E=15 E=5. 这样,正中央格中的数一定是5. 由于在同一条直线的三个数之和是15,因此若某格中的数是奇数,那么与这个数在同一条直线上的另两个数的奇偶性相同. 因此,四个角上的数A、C、G、I必为偶数.(否则,若A为奇数,则I为奇数.此时若B为奇数,则其余所有格亦为奇数;若B为偶数,则其

幻方最优填法

如何填幻方 幻方最早记载于我国公元前500年的春秋时期《大戴礼》中,这说明我国人民早在2500年前就已经知道了幻方的排列规律。而在国外,公元130年,希腊人塞翁才第一次提起幻方。我国不仅拥用幻方的发明权,而且是对幻方进行深入研究的国家。公元13世纪的数学家杨辉已经编制出3-10阶幻方,记载在他1275年写的《续古摘厅算法》一书中。在欧洲,直到574年,德国著名画家丢功才绘制出了完整的4阶幻方。 数学上已经证明,对于n>2,n阶幻方都存在。目前填写幻方的方法,是把幻方分成了三类,每类又有各种各样的填写方法。 1、奇数阶幻方 n为奇数(n=3,5,7,9,11……) (n=2×k+1,k=1,2,3,4,5……) 奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的n×n-1个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; (3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; (4)如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; (5)如果这个数所要放的格已经有数填入,处理方法同(4)。 这种写法总是先向“右上”的方向,象是在爬楼梯。 2、双偶阶幻方 n为偶数,且能被4整除(n=4,8,12,16,20……) (n=4k,k=1,2,3,4,5……) 先说明一个定义。互补:如果两个数字的和,等于幻方最大数和最小数的和,即n*n+1,称为互补。 先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写: 这个方阵的对角线,已经用颜色标出。将对角线上的数字,换成与它互补(同色)的数字。这里,n×n+1 = 4×4+1 = 17;把1换成17-1 = 16;把6换成17-6 = 11;把11换成17-11 = 6……换完后就是一个四阶幻方。 也可以保留对角线上的数字不动,而将其它的数换为与它互补的数。 对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4*4把它划分成k2个方阵。因为n是4的倍数,一定能用4*4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。 1 63 6 2 4 5 59 58 8 56 10 11 53 52 14 15 49 48 18 19 45 44 22 23 41 25 39 38 28 29 35 34 32 33 31 30 36 37 27 26 40 24 42 43 21 20 46 47 17 16 50 51 13 12 54 55 9 57 7 6 60 61 3 2 64

求魔方阵的十种算法

求魔方阵的十种算法 魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。 如3×3的魔方阵: 8 1 6 3 5 7 4 9 2 魔方阵的排列规律如下: (1)将1放在第一行中间一列; (2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列); (3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1; (4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列; (5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面; 1居上行正中央 依次右上切莫忘 上出框时往下写 右出框时左边放 右上有数下边写 右上出框也一样 一、魔方阵的简介 1.何谓矩阵?矩阵就是由方程组的系数及常数所构成的方阵。把用在解线性方程组上既 方便,又直观。 2.何谓n阶方阵?若一个矩阵是由n个横列与n个纵行所构成,共有个小方格,则称这 个方阵是一个n阶方阵。 3.何谓魔方阵?4 9 2 3 5 7 8 1 6定义:由n*n个数字所组成的n阶方阵,具有各对角线, 各横列与纵行的数字和都相等的性质,称为魔方阵。而这个相等的和称为魔术数字。若填入的数字是从1到n*n,称此种魔方阵为n阶正规魔方阵。 4.最早的魔方阵相传古时为了帮助治水专家大禹统治天下,由水中浮出两只庞大动物背

罗伯法构造幻方

#include #include using namespace std; int main() { int n,m,i,j,k,a[30][30],b,c; while(cin>>n) { if(n==0) break; m=1; k=n/2+1; for(j=n;;j=j-2) { if(j<=0) j=n+j; if(k==0) k=n+k; if(m==n*n+1) break; for(i=0,b=0,c=1;c<=n;i=i+1,b=b+1,c=c+1) { if(i+j==n+1) i=i-n; if(b+k==n+1) b=b-n; a[i+j][b+k]=m; m=m+1; } k=k-1; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<

1)每一个数放在前一个数的右上一格; 2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; 3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; 4)如果这个数所要放的格已经超出了顶行且超出了最右列那么就把它放在前一个数的下 一行同一列的格内; 5)如果这个数所要放的格已经有数填入,处理方法同4)。

#include using namespace std; int main() { int n; int a[100],b[100],i,j,max; while(cin>>n) { for(i=0;i>b[i]; a[0]=1; for(i=1;ib[j] && a[i]<=a[j]) a[i]=a[j]+1; } } for(max=i=0;i<=n-1;i++) { if(a[i]>max) max=a[i]; } cout<

数阶幻方的

数阶幻方的编排方法. 奇数阶幻方的编排方法 简便易学的编排方法。 一、九子排列法 宋朝数学家杨辉在《续古摘奇算法》中,总结“洛书”幻方的编排方法时说:三阶幻方的编排方法是“九子排列,上下对易,左右相更,四维挺出”。 这四个句子是什么意思呢?我们通过下面的一组图来加以理解。

先画出一个3×3的“九宫格”,并在第二列上、下方和第二行左、右边各添加一个虚线格子,把1~9这九个数字按顺序写在如上图所示的三排斜线上,然后上、下对调,左右交换,(因为我们是在格子上进行排列,就不必再进行“四维挺出”了),最后将虚线格子擦掉就可以了。 利用这种方法我们就很容易得到幻方(一)中例1的图A。但是这种方法有一定的局限性,只能编排三阶幻方,如果要编排5×5,7×7,9×9,……等奇数阶幻方又该怎么办呢?我们继续看第二种方法。 二、罗伯法 请大家注意观察幻方(一)中例1的图H,可以总结出下面的编排方法:

1、在第一行正中央的方格子中填上1; 2、按斜上方向在1的右上角填入2,但出上框了,这时要把2改填在2所在这一列的最下边; 3、按斜上方向在2的右上角填入3,又出右框了,把3改填在3所在这一行的最左边;(上图1) 4、按斜上方向在3的右上角填入4,但与先填入的1重合了,这时就把4改填在3的下面,然后把 5、6依次按斜上方向填入方格内; 5、按斜上方向在6的右上角填入7,但出框的右上角,这时就把7改填在6的下面,(与重合相同)。 重复上面的做法,把8、9依次填入方格中,这样就得到了图2,与左边的图H 完全相同。 这种编排奇数阶幻方的方法叫“罗伯法”。使用“罗伯法”时总是向右上的斜行方向进行编排。编排过程中会出现五种情况:“第一行正中央排什么数?”、“排出上框怎么办?”、“排出右框怎么办?”、“排重复了怎么办?”、“排出右上角怎么办?” 为了便于记忆,我们把罗伯法概括成下面的的几句话: 1居上行正中央,依次斜排莫忘记;上出框时往下写,右出框时左边放;重叠就在下格填,右上出框一个样。 罗伯法不仅可以编排三阶幻方,而且可以编排任何奇数阶幻方。下图就是用罗伯法编排的五阶幻方,请大家在方格子中跟着做一、二次,并逐行、逐列及对角线检验幻和是否正确。 三、巴舍法

偶数阶魔方阵构造方法

偶数阶魔方阵构造方法 2009-11-03 10:23:40| 分类:其他|字号大中小订阅 (1)n = 4k(4的整数倍时) (1) 先将整个方阵划分成k*k个4阶方阵,然后在每个4阶方阵的对角线上做记号 (2) 由左而右、由上而下,遇到没有记号的位置才填数字,但不管是否填入数字,每移动一格数字都要加1 (3) 自右下角开始,由右而左、由下而上,遇到没有数字的位置就填入数字,但每移动一格数字都要加1 例:k=1时构造完如下 16 2 3 13 5 11 10 8 9 7 6 12 4 14 1 5 1 (2)n = 4k + 2 本法填制魔方阵时,先将整个方阵划成田字型的四个2 k + 1阶的奇数阶小方阵,并以下法做注记: 1,右半两个小方阵中大于k+2的列。 2,左半两个小方阵中( k + 1 , k + 1 )的格位。 3,左半两个小方阵中除了( 1 , k + 1 )的格位之外,小于k +1的列。 以奇数阶魔方阵的方法连续填制法依左上、右下、右上、左下的顺序分别填制这四个小方阵。 将上半及下半方阵中有注记的数字对调,魔方阵完成。 例:k=1时构造完如下 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 幻方阵 幻方是什么呢?如右图就是一个幻方,即将n*n(n>=3)个数字放入n*n的方格内,使方格的各行、各列及对角线上各数字之各相等。 我很早就对此非常感兴趣,也有所收获。 8 1 6 3 5 7 4 9 2 本数学模型于1999年9月26日构造。 奇阶幻方 当n为奇数时,我们称幻方为奇阶幻方。可以用Merzirac法与loubere法实现,根据我的研究,发现用国际象棋之马步也可构造出更为神奇的奇幻方,故命名为horse法。 偶阶幻方 当n为偶数时,我们称幻方为偶阶幻方。当n可以被4整除时,我们称该偶阶幻方为双偶幻方;当n不可被4整除时,我们称该偶阶幻方为单偶幻方。可用了Hire法、Strachey以及YinMagic将其实现,Strachey为单偶模型,我对双偶(4m 阶)进行了重新修改,制作了另一个可行的数学模型,称之为Spring。YinMagic 是我于2002年设计的模型,他可以生成任意的偶阶幻方。 在填幻方前我们做如下约定:如填定数字超出幻方格范围,则把幻方看成是可以无限伸展的图形,如下图: Merzirac法生成奇阶幻方 在第一行居中的方格内放1,依次向左上方填入2、3、4…,如果左上方已有数字,则向下移一格继续填写。如下图用Merziral法生成的5阶幻方: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 loubere法生成奇阶幻方 在居中的方格向上一格内放1,依次向右上方填入2、3、4…,如果右上方已有数字,则向上移二格继续填写。如下图用Louberel法生成的7阶幻方: 30 39 48 1 10 19 28 38 47 7 9 18 27 29 46 6 8 17 26 35 37 5 14 1 6 25 34 36 45 13 15 24 33 42 44 4 21 23 32 41 43 3 12 22 31 40 49 2 11 20 horse法生成奇阶幻方 先在任意一格内放入1。向左走1步,并下走2步放入2(称为马步),向左走1步,并下走2步放入3,依次类推放到n。在n的下方放入n+1(称为跳步),再按上述方法放置到2n,在2n的下边放入2n+1。如下图用Horse法生成的5阶幻方:77 58 39 20 1 72 53 34 15 6 68 49 30 11 73 63 44 25 16 78 59 40 21 2 64 54 35 26 7 69 50 31 12 74 55 45 36 17 79 60 41 22 3 65 46 37 27 8 70 51 32 13 75 56 47 28 18 80 61 42 23 4 66 57 38 19 9 71 52 33 14 76 67 48 29 10 81 62 43 24 5 一般的,令矩阵[1,1]为向右走一步,向上走一步,[-1,0]为向左走一步。则马步可以表示为2X+Y,{X∈{[1,0], [-1,0]},Y∈{[0,1], [0,-1]}}∪{Y∈{[1,0], [-1,0]},X∈{[0,1], [0,-1]}}。对于2X+Y相应的跳步可以为2Y,-Y,X,-Y,X,3X,3X+3Y。上面的的是X型跳步。Horse法生成的幻方为魔鬼幻方。 Hire法生成偶阶幻方 将n阶幻方看作一个矩阵,记为A,其中的第i行j列方格内的数字记为a(i,j)。在A内两对角线上填写1、2、3、……、n,各行再填写1、2、3、……、n,使各行各列数字之和为n*(n+1)/2。填写方法为:第1行从n到1填写,从第2行到第n/2行按从1到进行填写(第2行第1列填n,第2行第n列填1),从第n/2+1到第n 行按n到1进行填写,对角线的方格内数字不变。如下所示为6阶填写方法: 1 5 4 3 2 6 6 2 3 4 5 1 1 2 3 4 5 6

幻方的制作方法

奇数阶幻方,偶数阶幻方,六阶幻方的制作方法 罗伯法(适合编制所有的奇阶幻方) 一居上行正中央,依次斜填切莫忘, 上出格时往下填,右出格时左边放, 排重便在下格填,角上出格一个样。 六阶幻方,具体的做是: 偶阶幻方分两类:双偶数阶幻方和单偶数阶幻方 双偶数:四阶幻方,八阶幻方,……4K阶幻方, 可用<对称交换法>,方法很简单: 1) 把自然数依次排成方阵

2) 把幻方划成4×4的小区,每个小区划对角线 3) 把这些对角线所划到的数,保持不动 4) 把没划到的数,按幻方的中心,以中心对称的方式,进行对调 幻方完成! 单偶数:六阶幻方,十阶幻方,……4K+2阶幻方 方法是很繁的,有一种称<同心方阵法>: 1) 把幻方分成两个区:一是边框一圈;二是里面一个双偶数方阵, 2) 把(3+8K)到(16K2 +8K+2)按双偶数幻方方法填入双偶数方阵 3) 把余下的数,在边上试填,调整到符合为止 六阶幻方(4×1+2,k=1)就是把11~26填入中间4×4方格中 传说在很久很久以前,黄河里跃起一匹龙马,马背上驮着一幅图;洛水里也浮出一只神龟,龟背上也驮着一幅图。这两幅图上都用圆点来表示一组数字,马背上的那幅称为“河图”,龟背上的那幅称为“洛书”。(参见图1)再后来,经过人们研究,发现图中右边的那幅“洛书”,其实是一幅纵横

图,即用1到9这9个数字组成一幅数字图,使它横的每行相加、竖的每列相加以及对角线相加,其和都等于15(参见图2)。我们知道,纵横图就是今天所说的“幻方”,一般地,是指把从1到十的自然数排成纵横各有m 个数,并且使同行、同列及同一对角线上的n个数的和都相等的一种方阵,其中涉及的是组合数学的问题。而前面所说的“洛书”,就是我国最早的一个三阶幻方。 图1 河图洛书图2 纵横图 长期以来,纵横图一直被看作是一种数字游戏。一直到南宋时期的数学家杨辉,才真正把它作为一个数学问题而加以深入的研究。杨辉在他的《续古摘奇算法》一书中,不仅搜集到了大量的各种类型的纵横图,而且对其中的部分纵横图还给出了如何构造的规则和方法,从而开创了这一组合数学研究的新领域。 杨辉给出的方形纵横图共有十三幅,它们是:洛书数(三阶幻方)一幅,四四图(四阶幻方)两幅,五五图(五阶幻方)两幅,六六图(六阶幻方)两幅,七七图(七阶幻方)两幅,六十四图(八阶幻方)两幅,九

数据结构课程设计之奇数魔方阵

长沙理工大学 《数据结构》课程设计报告 田晓辉 学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 计08-01 学 号 200850080110 学生姓名 田晓辉 指导教师 陈倩诒 课程成绩 完成日期 2010年7月10日

课程设计成绩评定 学院计算机与通信工程专业计算机科学与技术班级计08-01学号200850080110 学生姓名田晓辉指导教师陈倩诒 完成日期2010年7月10日 指导教师对学生在课程设计中的评价 评分项目优良中及格不及格课程设计中的创造性成果 学生掌握课程内容的程度 课程设计完成情况 课程设计动手能力 文字表达 学习态度 规范要求 课程设计论文的质量 指导教师对课程设计的评定意见 综合成绩指导教师签字 2010年7月10日

课程设计任务书 计算机与通信工程学院计算机科学技术专业 课程名称数据结构课程设计时间2010学年第2学期18~19周学生姓名田晓辉指导老师陈倩诒 题目用C语言解决魔方阵问题 主要内容:建立一个n*n阶的矩阵,在这个矩阵中填入1到n2(n为奇数)个数,使得每行、每列以及每条对角线的和相等。 要求: (1)通过实际项目的分析、设计、编码、测试等工作,掌握用C 语言来开发和维护软件。 (2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。 应当提交的文件: (1)课程设计学年论文。 (2)课程设计附件(主要是源程序)。

用C语言解决魔方阵的问题 学生姓名:田晓辉指导老师:陈倩诒 摘要本课程设计主要解决设计一个n×n的矩阵中填入1到n2的数字(n为奇数),使得每一行、每一列、每条对角线的累加和都相等的问题。在课程设计中,系统开发平台为Windows 7,程序设计语言采用Visual C++6.0,程序运行平台为Windows 98/2000/XP/7。在程序设计中,采用了C 语言结构化程序设计思想和过程设计方法,以功能函数为基本结构,对问题中的要求做出了准确的实现。程序通过调试运行,初步实现了设计目标。 关键词程序设计;C++6.0;结构化;过程设计;功能函数

小学思维数学讲义:幻方(一)-带详解

幻方(一) 1. 会用罗伯法填奇数阶幻方 2. 了解偶数阶幻方相关知识点 3. 深入学习三阶幻方 一、幻方起源 也叫纵横图,也就是把数字纵横排列成正方形,因此纵横图又叫幻方.幻方起源于我国,古人还为它编撰了一些神话.传说在大禹治水的年代,陕西的洛水经常大肆泛滥,无论怎样祭祀河神都无济于事,每年人们摆好祭品之后,河中都会爬出一只大乌龟,乌龟壳有九大块,横着数是3行,竖着数是3列,每块乌龟壳上都有几个点点,正好凑成1至9的数字,可是谁也弄不清这些小点点是什么意思.一次,大乌龟又从河里爬上来,一个看热闹的小孩惊叫起来:“瞧多有趣啊,这些点点不论横着加、竖着加还是斜着加,结果都等于十五!”于是人们赶紧把十五份祭品献给河神,说来也怪,河水果然从此不再泛滥了.这个神奇的图案叫做“幻方”,由于它有3行3列,所以叫做“三阶幻方”,这个相等的和叫做“幻和”.“洛书”就是幻和为15的三阶幻方.如下图: 98 76 54321 我国北周时期的数学家甄鸾在《算数记遗》里有一段注解:“九宫者,二四为肩,六八为足,左三右七,戴九履一,五居中央.”这段文字说明了九个数字的排列情况,可见幻方在我国历史悠久.三阶幻方又叫做九宫图,九宫图的幻方民间歌谣是这样的:“四海三山八仙洞,九龙五子一枝连;二七六郎赏月半,周围十五月团圆.”幻方的种类还很多,这节课我们将学习认识了解它们. 二、幻方定义 幻方是指横行、竖列、对角线上数的和都相等的数的方阵,具有这一性质的33?的数阵称作三阶幻方,44?的数阵称作四阶幻方,55?的称作五阶幻方……如图为三阶幻方、四阶幻方的标准式样, 9 87654 32 1 13 414151 6 1297 8 105113 2 16 三、解决这幻方常用的方法 ⑴适用于所有奇数阶幻方的填法有罗伯法.口诀是:一居上行正中央,后数依次右上连.上出框时往下填,右出框时往左填.排重便在下格填,右上排重一个样. ⑵适用于三阶幻方的三大法则有: ①求幻和: 所有数的和÷行数(或列数) ②求中心数:我们把幻方中对角线交点的数叫“中心数”,中心数=幻和÷3. ③角上的数=与它不同行、不同列、不同对角线的两数和÷2. 四、数独 知识点拨 教学目标

双偶数阶幻方的 V字型对称交换法

双偶数阶幻方的V字型中心对称交换法 范贤荣2016.5.30 所谓双偶数(即4m式)幻方,就是阶数N能被4整除的幻方,比如4阶、8阶、12阶……。下面介绍的V字型中心对称交换法,适用于所有4m式偶阶幻方。 V字型中心对称交换法有两种具体的填写法 一是:V区内数字的中心对称交换,二是:V区外数字的中心对称交换 一、V区内数字的中心对称交换 该法的步骤是: 第一步,把双偶数这些数字按照顺序填写在N×N的表格中。 第二步,把这个表格平均分成四个小方阵。 第三步,选取方阵的上部二小方阵的V形两对角线及其与它们相间隔又平行的那些数,组成V区内数字。 第四步,将这些V区内数字与方阵的下部中心对称的那些数,进行交换。交换完毕,幻方即成。 例如:4阶幻方 第一步,把1-16这些数字按照顺序填写在4×4的表格中。 第二步,把这个表格平分成四个小方阵。如图1中粗线。 第三步,在4×4方阵的上部的二小方阵中,取两对角线1、6和7、4组成V形两对角线。因为,4阶无与V形两对角线“相间隔又平行的那些数”。所以,无另外的那部分。因此,4阶幻方用此法是特例,其结果如同“对角线中心对称交换法”。 图1 第四步,将这些数字与方阵的下部中心对称的那些数,即1、16,6、11,4、13, 7、10进行交换。如图2即4阶幻方 图2

例如:8阶幻方 第一步,把1-61这些数字按照顺序填写在8×8的表格中。 第二步,把这个表格平分成四个小方阵。如图3中粗线。 第三步,在8×8方阵的上部的二小方阵中,取两对角线1、10、19、28和8、15、 22、29组成V形两对角线(红色)。还有,与V形两对角线“相间隔又 平行的那些数”,例如3、12,17、26和6、13,24、31等(黄色)组 成V区数字。 图3 第四步,将这些数字与方阵的下部中心对称的那些数,即1、10、19、28与64, 55、46、37等进行交换。如图4即8阶幻方 图4

幻方

奇数阶幻方 教授(带图) 11 18 25 2 9 10 12 19 21 3 4 6 13 20 22 23 5 7 14 16 17 24 1 8 15 (1)五阶幻方

(2)七阶幻方

22 31 40 49 2 11 20 21 23 32 41 43 3 12 13 15 24 33 42 44 4 5 14 16 25 34 36 45 46 6 8 17 26 35 37 38 47 7 9 18 27 29 30 39 48 1 10 19 28 (1)幻方简介: 幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。幻方也是一种汉族传统游戏。旧时在官府、学堂多见。它是将从一到若干个数的自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。

在一个由若干个排列整齐的数组成的正方形中,图中任意一横行、一纵行及对角线的几个数之和都相等,具有这种性质的图表,称为“幻方”。中国古代称为“河图”、“洛书”,又叫“纵横图”。幻方也称纵横图、魔方、魔阵,发源于中国古代的洛书——九宫图。公元前一世纪,西汉宣帝时的博士戴德在他的政治礼仪著作《大戴礼·明堂篇》中就有“二、九、四、七、五、三、六、一、八”的洛书九宫数记载。2500年前,孔子在他研究《易经》的著作《系词上传》中记载了:“河出图,洛出书,圣人则之。”最早将数字与洛书相连的记载是2300年前的《庄子·天运》,它认为:“天有六极五常,帝王顺之则治,逆之则凶。九洛之事,治成德备,监照下土,天下戴之,此谓上皇。”明代数学家程大位在《算法统宗》中也曾发出“数何肇?其肇自图、书乎?伏羲得之以画卦,大禹得之以序畴,列圣得之以开物”的感叹,大意是说,数起源于远古时代黄河出现的河图与洛水出现的洛书,伏羲依靠河图画出八卦,大禹按照洛书划分九州,并制定治理天下的九类大法,圣人们根据它们演绎出各种治国安邦的良策,对人类社会与自然界的认识也得到步步深化。 《周易本义》中的《洛书》,一个三阶幻方 宋杨辉著《续古摘奇算法》中曾叙述三阶幻方构造法:“九子斜排,上下对易,左右相更,四维挺出,戴九履一,左三右七,二四为肩,六八为足”。 (2)解幻方方法: 1、奇数阶幻方——罗伯特法(也有人称之为楼梯法)(如图一:以五阶幻方为例) 奇数阶幻方 n为奇数(n=3,5,7,9,11……) (n=2×k+1,k=1,2,3,4,5……) 奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的n×n-1个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列; (3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行; (4)如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内; (5)如果这个数所要放的格已经有数填入,处理方法同(4)。 这种写法总是先向“右上”的方向,象是在爬楼梯。

相关文档
相关文档 最新文档