您好,欢迎访问三七文档
天津工业大学中文题目:对幻方的浅显认识英文题目:Superficialunderstandingofthemagicsquare学号:1231138049姓名:孟帮杰年级:2012级专业:计算机技术指导教师:张大坤完成日期:2012年10月摘要多少世纪来人们对幻方总是怀着浓厚的兴趣。从古代起幻方就跟某些超自然和魔术的领域相联系。在古代亚洲的城市,人们在考古挖掘中发现了它们。有关幻方的最早记录,是约于公元前2200年在中国出现的“洛书”。传说这个幻方最初是大禹在黄河岸边的一只神龟的背上看到的。幻方,有时又称魔方(该称呼现一般指立方体的魔术方块)或纵横图,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。幻方起源于我国,并由我国传到全世界,在这漫长的历史中,幻方也得到了广泛的发展和进步。我们从多个角度去探寻幻方的历史,发展和在现实生活中的应用,以此来一部加深对幻方的理解。关键词:幻方历史幻方应用目录第一章引言..........................................1第二章幻方的历史和发展..............................2第三章幻方法则的研究................................3幻方法则..............................................................................................33.1奇数阶幻方(罗伯法).............................33.2双偶数阶幻方(对称交换法).......................33.3单偶数阶幻方(象限对称交换法)...................4第四章同阶幻方结构的讨论............................7同阶幻方结构......................................................................................74.1三阶幻方.........................................74.2四阶幻方.........................................74.3五阶幻方.........................................8第五章幻方法则的程序................................9程序如下.............................................9第六章幻方的应用...................................176.1幻方在数学和智力开发中的应用....................176.2幻方在科学技术中的应用..........................176.3幻方在艺术中的应用..............................17第七章结语.........................................18参考文献............................................191第一章引言我国的纵横图通过东南亚国家,印度、阿拉伯传到西方。由于纵横图具有十分奇幻的特性,西方把纵横图叫作MagicSquare,翻译成中文就是“幻方”或“魔方”。在一个由若干个排列整齐的数组成的正方形中,图中任意一横行、一纵行及对角线的几个数之和都相等,具有这种性质的图表,称为“幻方”。幻方问题是具有悠久历史的复杂排列组合问题。幻方问题的复杂性不仅在于解的多样性随阶数指数递增,而且在于解在可行排列空间中所占的比例随阶数指数递减。此外,在文章最后,简单介绍了幻方在数学和智力开发,科学以及艺术中的应用。我们从多个角度去探寻幻方的历史,发展和在现实生活中的应用,以此来一部加深对幻方的理解。2第二章幻方的历史和发展关于幻方的起源,我国有“河图”和“洛书”之说。相传在远古时期,伏羲氏取得天下,把国家治理得井井有条,感动了上天,于是黄河中跃出一匹龙马,背上驮着一张图,作为礼物献给他,这就是“河图”,也是最早的幻方。伏羲氏凭借着“河图”而演绎出了八卦,后来大禹治洪水时,洛水中浮出一只大乌龟,它的背上有图有字,人们称之为“洛书”。大约在8世纪,中国的幻方记述传人阿拉伯地区。该地区的人们对幻方产生了极大兴趣,并做出重要贡献。塔比伊本·库拉较早研究了幻方。约990年,一批阿拉伯学者编的本百科全书中可找到3,4,5,6阶幻方,并说明7,8,9阶幻方的存在。幻方1315年前后传人西方后,最初被赋予一种神秘性或作为护身符,成为神秘哲学的一部分,或是在一些场合中作为有趣的数学游戏。但当时并未引起人们的深思和研究。在中国,宋朝杨辉的《续古摘奇算法》辑录了更高阶的幻方(至10阶),他最早从数学角度研究了洛书的构造法以及其他6种变形幻方。它们同样具有某些组合性质。扬辉还构造出由9个洛书勾成的大幻方,如果洛书中的第I列第J行数记为In。杨辉之后易东、程大位、王文素,清朝方中逦、张潮、保其寿对幻方及变形幻方有深入的研究。形式也趋于多样化。除了这些以外,历史上最早的四阶幻方是在印度发现的,那是一个完全幻方,而且比中国的杨辉还要早了两百多年,印度人认为那是天神的手笔。直到中世纪后.欧洲的一些数学著作中才开始出现讨论幻方及其改造的内容,如卡尔丹诺给出了分别以日、月和五星为名的幻方及构造法。7世纪.日本对幻方也产生很浓的兴趣一主要是关孝和对幻方和幻圆理论的研究。现在的幻方种类很多,如一般幻方,对称幻方,同心幻方,完美幻方。平面幻方(二维),幻立方(三维),多维幻方。平方幻方,立方幻方,高次幻方,高次多维幻方。魔鬼幻方,马步幻方,多重幻方,六角幻方,双料幻方,幻环,幻圆等等。特殊的幻方有反幻方,完美反幻方。3第三章幻方法则的研究幻方法则3.1奇数阶幻方(罗伯法)奇数阶幻方最经典的填法是罗伯法。填写的方法是:把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数:1、每一个数放在前一个数的右上一格;2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;4、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;5、如果这个数所要放的格已经有数填入,那么就把它放在前一个数的下一行同一列的格内。例,用该填法获得的5阶幻方:172418152357141646132022101219213111825293.2双偶数阶幻方(对称交换法)所谓双偶阶幻方就是当n可以被4整除时的偶阶幻方,即4K阶幻方。在说解法之前我们先说明一个“互补数”定义:就是在n阶幻方中,如果两个数的和等于幻方中最大的数与1的和(即n×n+1),我们称它们为一对互补数。如在三阶幻方中,每一对和为10的数,是一对互补数;在四阶幻方中,每一对和为17的数,是一对互补数。双偶数阶幻方的对称交换解法:先看看4阶幻方的填法:将数字从左到右、从上到下按顺序填写:123456789101112413141516内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角上的数字对换,小正方形四个对角上的数字对换)即(1,16)(4,13)互换(6,11)(7,10)互换即可。16231351110897612414151对于n=4k阶幻方,我们先把数字按顺序填写。写好后,按4×4把它划分成k×k个方阵。因为n是4的倍数,一定能用4×4的小方阵分割。然后把每个小方阵的对角线,象制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成幻方。以8阶幻方为例:(1)先把数字按顺序填。然后,按4×4把它分割成4块(如图)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364(2)每个小方阵对角线上的数字(如左上角小方阵部分),换成和它互补的数。642361606757955541213515016174746202143422440262737363031333234352928383925412322444519184849151452531110568585954626313.3单偶数阶幻方(象限对称交换法)以n=10为例,10=4×2+2,这时k=25(1)把方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶幻方的填法填数。(2)在A象限的中间行、中间格开始,按自左向右的方向,标出k格。A象限的其它行则标出最左边的k格。将这些格,和C象限相对位置上的数,互换位置。6(3)在B象限任一行的中间格,自右向左,标出k-1列。(注:6阶幻方由于k-1=0,所以不用再作B、D象限的数据交换),将B象限标出的这些数,和D象限相对位置上的数进行交换,就形成幻方。7第四章同阶幻方结构的讨论同阶幻方结构4.1三阶幻方3阶幻方仅有一种。当然,按照对称可得出8种表现:4.2四阶幻方4阶完美幻方有48种。当然,按照对称和旋转可得出880种表现。84.3五阶幻方5阶完美幻方有144种。9第五章幻方法则的程序程序如下#includestdio.h#includemath.hinta[256][256];intn;intsum;intcheck();voidOddMagicSquare(intn);//奇数幻方voidSEvenMagicSquare(intn);//单偶数幻方voidDEvenMagicSquare(intn);//双偶数幻方voidmain(){inti,j;printf(请输入幻方的阶数:);scanf(%d,&n);sum=(n*n+1)*n/2;//幻方的和//奇数幻方if(n%2==1){OddMagicSquare(n);}10//单偶数幻方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,a[i][j]);printf(\n);}}else{printf(这个算法是错误的!);}}11//检验是否是幻方intcheck(intn){inti,j,sum1=0,sum2;//检查行for(i=0;in;i++){for(j=0;jn;j++)sum1+=a[i][j];if(sum1!=sum)return0;//每一行的和等于幻方和(n*n+1)*n/2sum1=0;}//检查列for(i=0;in;i++){for(j=0;jn;j++)sum1+=a[j][i];if(sum1!=sum)return0;//每一列的和等于幻方和(n*n+1)*n/2sum1=0;}//检查对角线for(sum1=0,sum2=0,i=0,j=0;in;i++,j++){sum1+=a[i][j];sum2+=a[i][n-j-1];}if(sum1!=sum)return0;12if(sum2!=sum)return0;//每一条对角线的和等于幻方和(n*n+1)*n/2elsereturn1;}//奇数幻方的输入/*规则:n为奇数时奇数阶幻方最经典的填法是罗伯法。填写的方法是:把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数
本文标题:幻方论文
链接地址:https://www.777doc.com/doc-3985538 .html