logo
天地变化的道理
使用率很高网站
生活要常常分享
您身边百科全书
免费为您秀产品
幻方
幻方 幻方,有时又称魔术方阵(其简称“魔方”现一般指立方体的魔术方块)或纵横图,由一组排放在正方形中的整数组成,其每行、每列以及每一条主对角线的和均相等。通常幻方由从formula_1到formula_2的连续整数组成,其中formula_3为正方形的行或列的数目。因此formula_3阶幻方有formula_3行formula_3列,并且所填充的数为从formula_1到formula_2。 幻方可以使用formula_3阶方阵来表示,方阵的每行、每列以及两条对角线的和都等于常数formula_10,如果填充数为formula_11,那么有 formula_12 幻方简史. 《系辞》云:「河出图,洛出书,圣人则之。」在宋朝之前,洛书的记述只有文字。 九宫图实物最早发现于西汉,1977年中国考古学家在安徽阜阳县双古堆西汉古墓中发现汉文帝七年(前173年)的太乙九宫占盘,乃是中国汉代幻方的实物。东汉《数术记遗》也有记载。 后来陈抟以降认为河图洛书的洛书代表九宫图,为formula_13这formula_14个数,而formula_15行、formula_15列以及两对角线上各自的数之和均为15。 杨辉纵横图. 南宋数学家杨辉著《续古摘奇算法》把类似于九宫图的图形命名为纵横图,书中列举3、4、5、6、7、8、9、10阶幻方。其中所述三阶幻方构造法:“九子斜排,上下对易,左右相更,四维挺出,戴九履一,左三右七,二四为肩,六八为足”,比法国数学家Claude Gaspar Bachet提出的方法早三百余年。 构造法. 根据构造方法的不同,幻方可以分成三类:奇数阶幻方、formula_17阶幻方和formula_18阶幻方,其中formula_19为自然数,formula_20阶幻方不存在。幻方构造法主要有:连续摆数法、阶梯法(楼梯法)、奇偶数分开的菱形法、对称法、对角线法、比例放大法、斯特雷奇法、LUX法、拉伊尔法(基方、根方合成法)、镶边法、相乘法、幻方模式等。 奇数阶幻方构造法. Siamese方法(Kraitchik 1942年,pp. 148-149)是构造奇数阶幻方的一种方法,说明如下: (由于幻方的对称性,也可以把右上改为右下、左上以及左下等方位) 以下图formula_24阶幻方为例,formula_1填写在formula_26(第一行第三列)的位置上;formula_20应当填写在其右上方格即formula_28中,由于formula_28超出顶边界,所以从最底行进入,即formula_30;formula_15填写在formula_30的右上方格formula_33中;formula_34填写在formula_33的右上方格formula_36中,由于formula_36超出右边界,所以从最左列进入,即formula_38;formula_24填写在formula_38的右上方格formula_41中;formula_42应该填写的方格formula_26已经被formula_1所占据,因此填写在formula_41的正下方格formula_46中;按照上面的步骤直到所有数填入。 魔方阵不是唯一的,比如5阶魔方阵还可以是: 偶数阶幻方构造法. formula_17阶幻方构造法. 对于formula_17阶幻方一般都用对调法,制作起来很容易。将它分割成formula_49个formula_50区块,再将其每一个区块的非主副对角线上的各个数关于中心对调即可。 如4阶幻方的排列法: formula_51 按如上图排列好,再将非主副对角线上的各个数关于中心对调,即成下图: formula_52 八阶幻方构造如下 formula_53 即: formula_54 formula_55阶幻方构造法. 加边法. 以formula_42阶为例子,先排出formula_34阶的幻方,如上图,再将图中每一个数都加上formula_58,有下图: formula_59 在外围加上一圈格子,把formula_60和formula_61这些数安排在外圈格子内,但要使相对两数之和等于formula_62。对于formula_63这些数是:formula_64;formula_65。结果如下: formula_66 LUX法. 在(4M+2)×(4M+2)个方格的适当格点上,先排出2M+1阶的幻方。在前M+1行的格点,全部标上「L」;在第M+1行的中间格点标上「U」,其余格点标上「L」;在第M+2行的中间格点标上「L」,其余格点标上「U」;在余下的M-1行的格点全部标上「X」。将格点上的数乘以4再减4,再按下面的规则加上1至4其中一个数,填入对应的格上: 4 1 1 4 1 4 L U X 2 3 2 3 3 2 例子: 四阶幻方全解搜索(C/C++)#重定向. int a[17],b[17],m; void s(int i) int n=0,j=0; while(++j=n,则y=y-n,x不变;continue if(y>=n) y -= n; continue; //循环判断是否该位置已经有数据,直到找到一个空位 //如果有数据,则移到x = x + 2;y = y - 1; continue if(matrix[x][y] != 0 ) x += 2;y -= 1; continue; break; //将当前的count值赋给选出的空位 matrix[x][y]= count; break; public static void print() for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) //System.out.println(matrix[i][j]); System.out.print(matrix[i][j]); System.out.print("_"); System.out.println(); public static void main(String[] args) { //手工输入n的值,并确保为奇数 n = 11; magic_squre_odd_generate(); print(); 以下是本算法将n设置为11时得出的11阶幻方的构造结果: 68 81 94 107 120 1 14 27 40 53 66 80 93 106 119 11 13 26 39 52 65 67 92 105 118 10 12 25 38 51 64 77 79 104 117 9 22 24 37 50 63 76 78 91 116 8 21 23 36 49 62 75 88 90 103 7 20 33 35 48 61 74 87 89 102 115 19 32 34 47 60 73 86 99 101 114 6 31 44 46 59 72 85 98 100 113 5 18 43 45 58 71 84 97 110 112 4 17 30 55 57 70 83 96 109 111 3 16 29 42 56 69 82 95 108 121 2 15 28 41 54 formula_34阶幻方算法的Java语言实现. * @author: contribute to wikipedia according GNU * @description:用于创建4阶的幻方 */ public class magic_square_4m { * @param args static int matrix[][]; static int n; static void magic_squre_4m_generate() //初始化matrix matrix = new int[n][n]; //将matrix里的位置用数顺序排列 int ini = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) matrix[i][j] = ++ini; //输出对调前的样子 System.out.println("对调之前的样子:"); print(); //然后对调(仅对右上方的数进行遍历) for(int i = 0; i < n; i++) for(int j = i + 1; j < n; j++) if(( i != j) &amp;&amp; (i + j) != (n -1) ) { //对不在主付对角线上的数关于中心对调 int temp; temp = matrix[i][j]; matrix[i][j] = matrix[n -1 - i][n - 1 - j]; matrix[n -1 - i][n - 1 - j] = temp; public static void print() for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) System.out.print(matrix[i][j]); System.out.print("_"); System.out.print("\n"); public static void main(String[] args) { //这里手动设置n的数值为4,这里只能设置为4,因为只求4阶幻方 n = 4; magic_squre_4m_generate(); System.out.println("对调之后的样子:"); print(); 以下是本算法输出的结果: 对调之前的样子: 1_2_3_4_ 5_6_7_8_ 9_10_11_12_ 13_14_15_16_ 对调之后的样子: 1_15_14_4_ 12_6_7_9_ 8_10_11_5_ 13_3_2_16_ 研究价值. 知名华人数学家陈省身曾在数学演讲中说幻方只是一个奇迹,它在数学中没有引起更普遍深刻的影响,不属于“好的数学”。 对幻方的学习和研究一直局限于趣味数学本身,更接近数字游戏或文字游戏,缺乏与主流数学的联系(和璇玑图在中国诗歌中的地位有一些相似)。数学和物理中也有具有更多学术价值的特殊数字方阵,如推动了试验设计研究的拉丁方阵和已有应用的阿达玛矩阵,还有在量子力学中有重要价值的泡利矩阵及其推广版本盖尔曼矩阵。魔术方块则可以与群论建立联系(见魔方群),可以作为抽象代数的入门教具,也是计算群论的研究案例之一,并非单纯的几何玩具。高性能的计算机诞生后,幻方、幻星、素数环(prime ring problem)等很多这类需要满足特殊规律的填数问题,只要所需的数字规模不大,都可以考虑通过深度优先搜索算法暴力求解和枚举。
幻方
本站由爱斯园团队开发维护,感谢
那些提出宝贵意见和打赏的网友,没有你们的支持,
网站不可能发展到今天,
继往开来,善终如始,我们将继续砥砺前行。
Copyright ©2014 iissy.com, All Rights Reserved.