幻方阵(转)

news/2024/7/8 6:03:32 标签: spring, 图形, 算法, c
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

幻方阵(转)

class="text_pic" style="float: right; visibility: visible;">

  幻方是什么呢?如右图就是一个幻方࿰c;即将n*n(n>=3)个数字 放入n*n的方格内࿰c;使方格的各行、各列及对角线 上各数字之各相等。
  我很早就对此非常感兴趣࿰c;也有所收获。
  8 1 6
  3 5 7
  4 9 2
  

  本数学模型 于1999年9月26日构造。
  奇阶幻方
  当n为奇数 时࿰c;我们称幻方为奇阶幻方。可以用Merzirac法与loubere法实现࿰c;根据我的研究࿰c;发现用国际象棋 之马步也可构造出更为神奇的奇幻方࿰c;故命名为horse法。
  偶阶幻方
  当n为偶数 时࿰c; 我们称幻方为偶阶幻方。当n可以被4整除时࿰c;我们称该偶阶幻方为双偶幻方;当n不可被4整除时࿰c;我们称该偶阶幻方为单偶幻方。可用了Hire法、 Strachey以及YinMagic将其实现࿰c;Strachey为单偶模型࿰c;我对双偶(4m阶)进行了重新修改࿰c;制作了另一个可行的数学模型࿰c;称之为 Spring。YinMagic是我于2002年设计的模型࿰c;他可以生成任意的偶阶幻方。
  在填幻方前我们做如下约定:如填定数字超出幻方格范围࿰c;则把幻方看成是可以无限伸展的class="tags" href="/tags/TuXing.html" title=图形>图形࿰c;如下图:
  Merzirac法生成奇阶幻方
  在第一行居中的方格内放1࿰c;依次向左上方填入2、3、4…࿰c;如果左上方已有数字࿰c;则向下移一格继续填写。如下图用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࿰c;依次向右上方填入2、3、4…࿰c;如果右上方已有数字࿰c;则向上移二格继续填写。如下图用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 16 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步࿰c;并下走2步放入2(称为马步)࿰c;向左走1步࿰c;并下走2步放入3࿰c;依次类推放到n。在n的下方放入n+1(称为跳步)࿰c;再按上述方法放置到2n࿰c;在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
  

  一般的࿰c;令矩阵[1,1]为向右走一步࿰c;向上走一步࿰c;[-1,0]为向左走一步。则马步可以表 示为2X+Y࿰c;{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阶幻方看作一个矩阵࿰c;记为A࿰c;其中的第i行j列方格内的数字记为a(i,j)。在A内两对 角线上填写1、2、3、……、n࿰c;各行再填写1、2、3、……、n࿰c;使各行各列数字之和为n*(n+1)/2。填写方法为:第1行从n到1填写࿰c;从第2行 到第n/2行按从1到进行填写(第2行第1列填n࿰c;第2行第n列填1)࿰c;从第n/2+1到第n行按n到1进行填写࿰c;对角线的方格内数字不变。如下所示为6 阶填写方法:
  1 5 4 3 2 6
  6 2 3 4 5 1
  1 2 3 4 5 6
  6 5 3 4 2 1
  6 2 4 3 5 1
  1 5 4 3 2 6
  

  如下所示为8阶填写方法(转置以后):
  1 8 1 1 8 8 8 1
  7 2 2 2 7 7 2 7
  6 3 3 3 6 3 6 6
  5 4 4 4 4 5 5 5
  4 5 5 5 5 4 4 4
  3 6 6 6 3 6 3 3
  2 7 7 7 2 2 7 2
  8 1 8 8 1 1 1 8
  

  将A上所有数字分别按如下class="tags" href="/tags/SuanFa.html" title=算法>算法计算 ࿰c;得到B࿰c;其中b(i,j)=n×(a(i,j)-1)。则AT+B为目标幻方
  (AT为A的转置矩阵)。如下图用Hire法生成的8阶幻方:
  1 63 6 5 60 59 58 8
  56 10 11 12 53 54 15 49
  41 18 19 20 45 22 47 48
  33 26 27 28 29 38 39 40
  32 39 38 36 37 27 26 25
  24 47 43 45 20 46 18 17
  16 50 54 53 12 11 55 9
  57 7 62 61 4 3 2 64
  

  Strachey法生成单偶幻方
  将n阶单偶幻方表示为4m+2阶幻方。将其等分为四分࿰c;成为如下图所示A、B、C、D四个2m+1阶奇数幻方。
  A C
  D B

  A用1至2m+1填写成(2m+1)2阶幻方;B用(2m+1)2+1至2*(2m+1)2填 写成2m+1阶幻方;C用2*(2m+1)2+1至3*(2m+1)2填写成2m+1阶幻方;D用3*(2m+1)2+1至4*(2m+1)2填写成 2m+1阶幻方;在A中间一行取m个小格࿰c;其中1格为该行居中1小格,另外m-1个小格任意,其他行左侧边缘取m列࿰c;将其与D相应方格内交换;B与C接近 右侧m-1列相互交换。如下图用Strachey法生成的6阶幻方:
  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
  

  Spring法生成以偶幻方
  将n阶双偶幻方表示为4m阶幻方。将n阶幻方看作一个矩阵࿰c;记为A࿰c;其中的第i行j列方格内的数字记为a(i,j)。
  先令a(i,j)=(i-1)*n+j࿰c;即第一行从左到可分别填写1、2、3、……、n;即第二行从左到可分别填写n+1、n+2、n+3、……、2n;…………之后进行对角交换。对角交换有两种方法:
  方法一;将左上区域i+j为偶数的与幻方内以中心点为对称点的右下角对角数字进行交换;将右上区域i+j为奇数的与幻方内以中心点为对称点的左下角对角数字进行交换。(保证不同时为奇或偶即可。)
  方法二;将幻方等分成m*m个4阶幻方࿰c;将各4阶幻方中对角线上的方格内数字与n阶幻方内以中心点为对称点的对角数字进行交换。
  如下图用Spring法生成的4阶幻方:
  16 2 3 13
  5 11 10 8
  9 7 6 12
  4 14 15 1
  

  YinMagic构造偶阶幻方
  先构造n-2幻方࿰c;之后将其中的数字全部加上2n-2࿰c;放于n阶幻方中间࿰c;再用本方法将边缘数 字填写完毕。本方法适用于n>4的所有幻方࿰c;我于2002年12月31日构造的数学模型。YinMagic法可生成6阶以上的偶幻方。如下图用 YinMagic法生成的6阶幻方:
  10 1 34 33 5 28
  29 23 22 11 18 8
  30 12 17 24 21 7
  2 26 19 14 15 35
  31 13 16 25 20 6
  9 36 3 4 32 27
  

  魔鬼幻方
  如将幻方看成是无限伸展的class="tags" href="/tags/TuXing.html" title=图形>图形࿰c;则任何一个相邻的n*n方格内的数字都可以组成一个幻方。则称该幻方为魔鬼幻方。
  用我研究的Horse法构造的幻方是魔鬼幻方。如下的幻方更是魔鬼幻方࿰c;因为对于任意四个在两行两列上的数字࿰c;他们的和都是34。此幻方可用YinMagic方法生成。
  15 10 3 6
  4 5 16 9
  14 11 2 7
  1 8 13 12

  罗伯法:
  1居上行正中央࿰c;依次排开右上方。
  右出格时写最左࿰c;上出格时写最下.
  每逢几个落一行.(几个是几*几的方阵中的几)
  【幻方在高中数学中的考查】
  “幻方”易在高中数学《数列》一章中以找规律或开放题的形式对考生进行考察。通常以选择题为主。考察的内容比较简单࿰c;通常为求N阶幻方行、列、对角线(其实它们都是相等的)上的数之和。通常的方法是࿰c;从1一直加到N^2࿰c;再将得出的数除以N即可。
  如3阶幻方࿰c;则1+2+3+……+9=45࿰c;45/3=15࿰c;即f(3)=15
  同理࿰c;4阶幻方࿰c;则1+2+……+16=136࿰c;136/4=34࿰c;即f(4)=34

cle>

http://www.niftyadmin.cn/n/489622.html

相关文章

详细解析Java中抽象类和接口的区别 abstract class和interface(转)

详细解析Java中抽象类和接口的区别 abstract class和interface(转) 在 Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类…

[推理]爱因斯坦谜大汇集(转)

[推理]爱因斯坦谜大汇集(转) 初级篇 中級篇 中级篇 挑戰篇 挑战篇 花花公子的老婆 花花公子的老婆 花花公子A君終於決定要結婚了。 花花公子A君终于决定要结婚了。 不過,對於新娘他有4項要求。 不过,对于新娘他有…

内联(Inline)的定义以及什么情况下使用内联(转)

内联(Inline)的定义以及什么情况下使用内联(转) 内联函数也称为内嵌函数,它主要是解决程序的运行效率。函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些工作都需要一些时 间开销。有些…

浅谈Java中final,finalized,finally(转)

浅谈Java中final,finalized,finally(转) final: final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习 Java时必须要知道和掌握的关键字之一。 final成员 当你…

java中equals方法和“==”的区别:(转)

java中equals方法和“”的区别:(转) equals 方法是 java.lang.Object 类的方法。 有两种用法说明: (1)对于字符串变量来说,使用“”和“equals()”方法比较字符串时,其比较方法不同。 “”比较两个变…

C++中的static(引用)

C中的static(引用) C的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。   一、面向过程设计中的static   1、静态全局变量   在全…

了解TCP/IP协议(引用)

了解TCP/IP协议(引用)TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。TCP/IP协议的开…

函数模板和模板函数(引用)

函数模板和模板函数(引用) 1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。 函数模板的声明形…