幻方论文.doc

上传人:M****1 文档编号:547713119 上传时间:2023-12-10 格式:DOC 页数:23 大小:500.50KB
返回 下载 相关 举报
幻方论文.doc_第1页
第1页 / 共23页
幻方论文.doc_第2页
第2页 / 共23页
幻方论文.doc_第3页
第3页 / 共23页
幻方论文.doc_第4页
第4页 / 共23页
幻方论文.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《幻方论文.doc》由会员分享,可在线阅读,更多相关《幻方论文.doc(23页珍藏版)》请在金锄头文库上搜索。

1、天津工业大学中文题目: 对幻方的浅显认识 英文题目: Superficial understanding of the magic square 学 号: 1231138049 姓 名: 孟帮杰 年 级: 2012级 专 业: 计算机技术 指导教师: 张大坤 完成日期: 2012年10月 摘 要多少世纪来人们对幻方总是怀着浓厚的兴趣。从古代起幻方就跟某些超自然和魔术的领域相联系。在古代亚洲的城市,人们在考古挖掘中发现了它们。有关幻方的最早记录,是约于公元前2200年在中国出现的“洛书”。传说这个幻方最初是大禹在黄河岸边的一只神龟的背上看到的。幻方,有时又称魔方(该称呼现一般指立方体的魔术方块)

2、或纵横图,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。幻方起源于我国,并由我国传到全世界,在这漫长的历史中,幻方也得到了广泛的发展和进步。我们从多个角度去探寻幻方的历史,发展和在现实生活中的应用,以此来一部加深对幻方的理解。关键词:幻方历史 幻方 应用 目 录第一章 引言1第二章 幻方的历史和发展2第三章 幻方法则的研究3幻方法则33.1奇数阶幻方(罗伯法)33.2双偶数阶幻方(对称交换法)33.3单偶数阶幻方(象限对称交换法)4第四章 同阶幻方结构的讨论7同阶幻方结构74.1三阶幻方74.2 四阶幻方74.3五阶幻方8第五章 幻方法则的程序9程序如下9第六章

3、幻方的应用176.1幻方在数学和智力开发中的应用176.2幻方在科学技术中的应用176.3幻方在艺术中的应用17第七章 结语18参考文献19第一章 引言我国的纵横图通过东南亚国家,印度、阿拉伯传到西方。由于纵横图具有十分奇幻的特性,西方把纵横图叫作Magic Square,翻译成中文就是“幻方”或“魔方”。 在一个由若干个排列整齐的数组成的正方形中,图中任意一横行、一纵行及对角线的几个数之和都相等,具有这种性质的图表,称为“幻方”。幻方问题是具有悠久历史的复杂排列组合问题。幻方问题的复杂性不仅在于解的多样性随阶数指数递增,而且在于解在可行排列空间中所占的比例随阶数指数递减。此外,在文章最后,简

4、单介绍了幻方在数学和智力开发,科学以及艺术中的应用。我们从多个角度去探寻幻方的历史,发展和在现实生活中的应用,以此来一部加深对幻方的理解。第二章 幻方的历史和发展关于幻方的起源,我国有“河图”和“洛书”之说。相传在远古时期,伏羲氏取得天下,把国家治理得井井有条,感动了上天,于是黄河中跃出一匹龙马,背上驮着一张图,作为礼物献给他,这就是“河图”,也是最早的幻方。伏羲氏凭借着“河图”而演绎出了八卦,后来大禹治洪水时,洛水中浮出一只大乌龟,它的背上有图有字,人们称之为“洛书”。大约在8世纪,中国的幻方记述传人阿拉伯地区。该地区的人们对幻方产生了极大兴趣,并做出重要贡献。塔比伊本库拉较早研究了幻方。约

5、990年,一批阿拉伯学者编的本百科全书中可找到3,4,5,6阶幻方,并说明7,8,9阶幻方的存在。幻方1315年前后传人西方后,最初被赋予一种神秘性或作为护身符,成为神秘哲学的一部分,或是在一些场合中作为有趣的数学游戏。但当时并未引起人们的深思和研究。在中国,宋朝杨辉的续古摘奇算法辑录了更高阶的幻方(至10阶),他最早从数学角度研究了洛书的构造法以及其他6种变形幻方。它们同样具有某些组合性质。扬辉还构造出由9个洛书勾成的大幻方,如果洛书中的第I列第J行数记为In。杨辉之后易东、程大位、王文素,清朝方中逦、张潮、保其寿对幻方及变形幻方有深入的研究。形式也趋于多样化。除了这些以外,历史上最早的四阶

6、幻方是在印度发现的,那是一个完全幻方,而且比中国的杨辉还要早了两百多年,印度人认为那是天神的手笔。直到中世纪后欧洲的一些数学著作中才开始出现讨论幻方及其改造的内容,如卡尔丹诺给出了分别以日、月和五星为名的幻方及构造法。7世纪日本对幻方也产生很浓的兴趣一主要是关孝和对幻方和幻圆理论的研究。现在的幻方种类很多,如一般幻方,对称幻方,同心幻方,完美幻方。平面幻方(二维),幻立方(三维),多维幻方。平方幻方,立方幻方,高次幻方,高次多维幻方。魔鬼幻方,马步幻方,多重幻方,六角幻方,双料幻方,幻环,幻圆等等。特殊的幻方有反幻方,完美反幻方。第三章 幻方法则的研究幻方法则3.1奇数阶幻方(罗伯法)奇数阶幻

7、方最经典的填法是罗伯法。填写的方法是:把1(或最小的数)放在第一行正中; 按以下规律排列剩下的(nn1)个数:1、每一个数放在前一个数的右上一格;2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;4、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;5、如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内。例,用该填法获得的5阶幻方:172418152357141646132022101219213111825293.2双

8、偶数阶幻方(对称交换法) 所谓双偶阶幻方就是当n可以被4整除时的偶阶幻方,即4K阶幻方。在说解法之前我们先说明一个“互补数”定义:就是在 n 阶幻方中,如果两个数的和等于幻方中最大的数与 1 的和(即 nn1),我们称它们为一对互补数 。如在三阶幻方中,每一对和为 10 的数,是一对互补数 ;在四阶幻方中,每一对和为 17 的数,是一对互补数 。双偶数阶幻方的对称交换解法:先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写:12345678910111213141516 内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角上的数字对换,小正方形四个对角上

9、的数字对换)即(1,16)(4,13)互换(6,11)(7,10)互换即可。16231351110897612414151 对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按44把它划分成kk个方阵。因为n是4的倍数,一定能用44的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。以8阶幻方为例:(1) 先把数字按顺序填。然后,按44把它分割成4块(如图)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950

10、5152535455565758596061626364(2) 每个小方阵对角线上的数字(如左上角小方阵部分),换成和它互补的数。642361606757955541213515016174746202143422440262737363031333234352928383925412322444519184849151452531110568585954626313.3单偶数阶幻方(象限对称交换法)以n=10为例,10422,这时k=2(1)把方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。(2)在A象限的中间

11、行、中间格开始,按自左向右的方向,标出k格。A象限的其它行则标出最左边的k格。将这些格,和C象限相对位置上的数,互换位置。(3)在B象限任一行的中间格,自右向左,标出k-1列。(注:6阶幻方由于k-1=0,所以不用再作B、D象限的数据交换), 将B象限标出的这些数,和D象限相对位置上的数进行交换,就形成幻方。第四章 同阶幻方结构的讨论同阶幻方结构4.1三阶幻方3阶幻方仅有一种。当然,按照对称可得出8种表现:4.2 四阶幻方4阶完美幻方有48种。当然,按照对称和旋转可得出880种表现。4.3五阶幻方5阶完美幻方有144种。第五章 幻方法则的程序程序如下#includestdio.h#includ

12、emath.hint a256256;int n;int sum;int check();void OddMagicSquare(int n);/奇数幻方void SEvenMagicSquare(int n);/单偶数幻方void DEvenMagicSquare(int n);/双偶数幻方void main()int i,j;printf(请输入幻方的阶数:);scanf(%d,&n);sum=(n*n+1)*n/2;/幻方的和 /奇数幻方if(n%2=1)OddMagicSquare(n);/单偶数幻方if(n%4=2)SEvenMagicSquare(n);/双偶数幻方if(n%4=0)DEvenMagicSquare(n);/检验并输出if(check(n)=1)printf(这个 %d 阶幻方如下:n,n);for(i=0;in;i+)for(j=0;jn;j+)printf(%5d,aij);printf(n);elseprintf(这个算法是错误的!);/检验是否是幻方int check(int n)int i,j,sum1=0,sum2;/检查行for(i=0;in;i+)for(j=0;jn;j+)sum1+=aij;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 技术指导

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号