查看“︁幻方”︁的源代码
←
幻方
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[File:Jiushutu.png|220px|洛書(九数图),朱熹《周易本義》|thumb]] '''幻方''',有时又称'''魔术方阵'''(其简称“魔方”现一般指[[立方体]]的[[魔術方塊]])或'''纵横图''',由一组排放在正方形中的[[整数]]组成,其每行、每列以及每一条主对角线的和均相等。通常幻方由从<math>1</math>到<math>N^2</math>的连续整数组成,其中<math>N</math>为正方形的行或列的数目。因此<math>N</math>阶幻方有<math>N</math>行<math>N</math>列,并且所填充的数为从<math>1</math>到<math>N^2</math>。 幻方可以使用<math>N</math>阶方阵来表示,方阵的每行、每列以及两条对角线的和都等于常数<math>M_2(N)</math>,如果填充数为<math>1,2,\dots,N^2</math>,那么有 :<math>M_2(N) = \frac{N(N^2+1)}{2}</math> == 幻方简史 == 《繫辭》云:「河出圖,洛出書,聖人則之。」在宋朝之前,洛書的記述只有文字。 [[九宮圖]]實物最早發現於西漢,1977年中國考古學家在安徽阜陽縣雙古堆西漢古墓中發現漢文帝七年(前173年)的太乙九宮占盤,乃是中國漢代幻方的實物。東漢《[[數術記遺]]》也有記載。 後來[[陳摶]]以降認為[[河圖洛書]]的洛書代表九宫图,為<math>1,\dots,9</math>这<math>9</math>个数,而<math>3</math>行、<math>3</math>列以及两对角线上各自的数之和均为15。 ==杨辉纵横图== [[File:Yanghui magic square.GIF|thumb|right|200px|杨辉纵横图]] [[南宋]]数学家[[杨辉]]著《续古摘奇算法》把类似于[[九宫图]]的[[图形]]命名为[[纵横图]],书中列举3、4、5、6、7、8、9、10阶幻方。其中所述三阶幻方构造法:“九子斜排,上下对易,左右相更,四维挺出,戴九履一,左三右七,二四为肩,六八为足”,比[[法国]]数学家Claude Gaspar Bachet提出的方法早三百余年。 == 构造法 == 根据构造方法的不同,幻方可以分成三类:[[奇数阶幻方]]、<math>4k</math>阶幻方和<math>4k+2</math>阶幻方,其中<math>M</math>为[[自然数]],<math>2</math>阶幻方不存在。幻方构造法主要有:[[连续摆数法]]、[[阶梯法]](楼梯法)、奇偶数分开的[[菱形法]]、[[对称法]]、[[对角线法]]、[[比例放大法]]、[[斯特雷奇法]]、[[LUX法]]、[[拉伊尔法]](基方、根方合成法)、[[镶边法]]、[[相乘法]]、[[幻方模式]]等。 === 奇数阶幻方构造法 === ==== 右斜角降位法1 ==== 假設要建構n階幻方,n為奇數。 # 先在第一橫列中央的方格填入1。 # 向右上方的格子推進,依次填入2、3、4、…、n<sup>2</sup>,若超過方陣框外,則將數字填入到該橫列或該直行的相對位置。 # 若右上方的格子已有數字,則將數字填入下面的格子中。 以下图<math>5</math>阶幻方为例,<math>1</math>填写在<math>(1,3)</math>(第一行第三列)的位置上;<math>2</math>应当填写在其右上方格即<math>(0,4)</math>中,由于<math>(0,4)</math>超出顶边界,所以从最底行进入,即<math>(5,4)</math>;<math>3</math>填写在<math>(5,4)</math>的右上方格<math>(4,5)</math>中;<math>4</math>填写在<math>(4,5)</math>的右上方格<math>(3,6)</math>中,由于<math>(3,6)</math>超出右边界,所以从最左列进入,即<math>(3,1)</math>;<math>5</math>填写在<math>(3,1)</math>的右上方格<math>(2,2)</math>中;<math>6</math>应该填写的方格<math>(1,3)</math>已经被<math>1</math>所占据,因此填写在<math>(2,2)</math>的正下方格<math>(3,2)</math>中;按照上面的步骤直到所有数填入。 <center> {| cellpadding="2" |----- | align="center" valign="center" | <math>\begin{bmatrix} 8 & 1 & 6 \\ 3 & 5 & 7 \\ 4 & 9 & 2 \\ \end{bmatrix}</math> | align="center" valign="center" | <math>\begin{bmatrix} 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 \end{bmatrix}</math> | align="center" valign="center" | <math>\begin{bmatrix} 47 & 58 & 69 & 80 & 1 & 12 & 23 & 34 & 45 \\ 57 & 68 & 79 & 9 & 11 & 22 & 33 & 44 & 46 \\ 67 & 78 & 8 & 10 & 21 & 32 & 43 & 54 & 56 \\ 77 & 7 & 18 & 20 & 31 & 42 & 53 & 55 & 66 \\ 6 & 17 & 19 & 30 & 41 & 52 & 63 & 65 & 76 \\ 16 & 27 & 29 & 40 & 51 & 62 & 64 & 75 & 5 \\ 26 & 28 & 39 & 50 & 61 & 72 & 74 & 4 & 15 \\ 36 & 38 & 49 & 60 & 71 & 73 & 3 & 14 & 25 \\ 37 & 48 & 59 & 70 & 81 & 2 & 13 & 24 & 35 \end{bmatrix}</math> |----- | align="center" | <math>3</math>阶 || align="center" | <math>5</math>阶 | align="center" | <math>9</math>阶 |} </center> 魔方阵不是唯一的,比如5阶魔方阵还可以是: <center> {| cellpadding="2" |----- | align="center" valign="center" | <math>\begin{bmatrix} 15 & 6 & 19 & 2 & 23 \\ 16 & 12 & 25 & 8 & 4 \\ 9 & 5 & 13 & 21 & 17 \\ 22 & 18 & 1 & 14 & 10 \\ 3 & 24 & 7 & 20 & 11 \end{bmatrix}</math> |----- |align="center" | <math>5</math>阶 |} </center> ==== 右斜角降位法2 ==== 假設要建構n階幻方,n為奇數。 # 先在第一橫列中央的方格填入1。 # 向「右(n-1)/2格、上(n-1)/2格」的格子推進,依次填入2、3、4、…、n<sup>2</sup>,若超過方陣框外,則將數字填入到該橫列或該直行的相對位置。 # 若右上方的格子已有數字,則將數字填入下面的格子中。 ==== 右斜角升位法 ==== 假設要建構n階幻方,n為奇數。 # 先在中央格的正上方一格的方格填入1。 # 向右上方的格子推進,依次填入2、3、4、…、n<sup>2</sup>,若超過方陣框外,則將數字填入到該橫列或該直行的相對位置。 # 若右上方的格子已有數字,則將數字填入上面兩格的格子中。 ==== 菱形法 ==== 假設要建構n階幻方,n為奇數。 # 先以對角線為兩邊,做一個包含n階方陣的菱形方陣,此方陣總共有2n<sup>2</sup>-2n+1(第n個[[中心正方形數]])個格子。 # 從這個菱形方陣中的最上方的尖端格子,由左上往右下,再由右上往左下,依次填入1、2、3、4、…、n<sup>2</sup>。 # 將原先方陣上側外的格子向下平行移動n格,填入原方陣的空格處,相同的步驟,若格子是在下側,往上移,若格子是在左側,往右移,若格子是在右側,往左移。 === 偶数阶幻方构造法 === ==== <math>4k</math>阶幻方构造法 ==== ===== 消去對角線法 ===== # 將1、2、3、4、…、n<sup>2</sup>由上到下、再由左到右,依次填入。 # 將方陣以四階方陣為單位分割(可分割成n<sup>2</sup>個四階方陣),然後在每個四階方陣中,對角線上的數字擦掉。 # 把擦掉的數字由大的數開始,由上到下、再由左到右,依次填入。 ===== 保留對角線法 ===== 假設要建構n階幻方,n為4的倍數。 # 將1、2、3、4、…、n<sup>2</sup>由上到下、再由左到右,依次填入。 # 將方陣以四階方陣為單位分割(可分割成n<sup>2</sup>個四階方陣),然後在每個四階方陣中,不在對角線上的數字擦掉。 # 把擦掉的數字由大的數開始,由上到下、再由左到右,依次填入。 如4阶幻方的排列法:<br /> <math>\begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \end{bmatrix}</math><br /> 按如上图排列好,再将非主副对角线上的各个数关于中心对调,即成下图:<br /> <math>\begin{bmatrix} 1 & 15 & 14 & 4 \\ 12 & 6 & 7 & 9 \\ 8 & 10 & 11 & 5 \\ 13 & 3 & 2 & 16 \end{bmatrix}</math><br /> 八阶幻方构造如下<br /> <math>\left[ \begin{array}{cccc|cccc} \diagdown & \bigstar & \bigstar & \diagup & \diagdown & \bigstar & \bigstar & \diagup \\ \bigstar & \diagdown & \diagup & \bigstar & \bigstar & \diagdown & \diagup & \bigstar \\ \bigstar & \diagup & \diagdown & \bigstar & \bigstar & \diagup & \diagdown & \bigstar \\ \diagup & \bigstar & \bigstar & \diagdown & \diagup & \bigstar & \bigstar & \diagdown \\ \hline \diagdown & \bigstar & \bigstar & \diagup & \diagdown & \bigstar & \bigstar & \diagup \\ \bigstar & \diagdown & \diagup & \bigstar & \bigstar & \diagdown & \diagup & \bigstar \\ \bigstar & \diagup & \diagdown & \bigstar & \bigstar & \diagup & \diagdown & \bigstar \\ \diagup & \bigstar & \bigstar & \diagdown & \diagup & \bigstar & \bigstar & \diagdown \\ \end{array} \right]</math><br /> 即:<br /> <math>\begin{bmatrix} 1 & 63 & 62 & 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 \end{bmatrix}</math> ==== <math>4k+2</math>阶幻方构造法 ==== =====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 例子: <pre> [ 68 65 96 93 4 1 32 29 60 57 ] 17L 24L 1L 8L 15L [ 66 67 94 95 2 3 30 31 58 59 ] [ 92 89 20 17 28 25 56 53 64 61 ] 23L 5L 7L 14L 16L [ 90 91 18 19 26 27 54 55 62 63 ] [ 16 13 24 21 49 52 80 77 88 85 ] 4L 6L 13U 20L 22L [ 14 15 22 23 50 51 78 79 86 87 ] [ 37 40 45 48 76 73 81 84 9 12 ] 10U 12U 19L 21U 3U [ 38 39 46 47 74 75 82 83 10 11 ] [ 41 44 69 72 97 100 5 8 33 36 ] 11X 18X 25X 2X 9X [ 43 42 71 70 99 98 7 6 35 34 ] </pre> ===== 斯特拉奇法 ===== {{main|en:Strachey method for magic squares}} === 任何階數的幻方都適用的構造法 === ==== 艾歆緹雅法 ==== 此方法可用來建構任何階數的幻方,當要建構n階幻方時,使用兩個方陣,一個填入正整數1到n各n次,另一個則填入0、n、2n、3n、…、(n-1)*n各n次,儘管奇數階幻方與偶數階幻方的填入方式有所不同。 對於奇數階幻方: 第一個方陣:在第一橫列中央的方格填入1,並且往左下角不斷填入1,若超出方陣外,則向右平移n格,直到每一橫列都有一個方格填入1為止,再把所有填入1的方格右邊的格子填入2(若超出方陣外,則向左平移n格),再把所有填入2的方格右邊的格子填入3,一直到填入n為止。 第二個方陣:在第一直行中央的方格填入0,並且往右下角不斷填入1,若超出方陣外,則向上平移n格,直到每一直行都有一個方格填入0為止,再把所有填入0的方格右邊的格子填入n(若超出方陣外,則向上平移n格)。再把所有填入n的方格右邊的格子填入2n,一直到填入(n-1)*n為止。 再把兩個方陣中的數相加。 事實上,你可以將這兩個方陣中的每一個相同數字都替換為另一個數字,只要這兩個方陣中原本有出現的n個數字都仍然各出現n次即可,唯一的條件是第一個方陣中(n+1)/2這個數字,以及第二個方陣中(n-1)*n/2這個數字,不能被替換。 對於偶數階幻方: 第一個方陣:第一直行由上到下依次填入1到n,第二直行由下到上依次填入1到n,第三直行與第二直行相同,第四直行與第一直行相同,若超過四直行,則重複第一到第四直行的步驟。 第二個方陣:第一橫列由上到下依次填入0到n*(n-1),第二橫列由下到上依次填入0到n*(n-1),第三橫列與第二橫列相同,第四橫列與第一橫列相同,若超過四橫列,則重複第一到第四橫列的步驟。 此方法暫時只適用於4k階的幻方。 事實上,你可以將這兩個方陣中的每一個相同數字都替換為另一個數字,只要這兩個方陣中原本有出現的n個數字都仍然各出現n次即可,唯一的條件是第一個方陣中每個直行相對的兩個數字之和必須是n+1,以及第二個方陣中每個橫列相對的兩個數字之和必須是n*(n-1)。 如果是4k+2階的幻方,就必須在第二個方陣中,檢查每個直行相對的兩個數字之和為n*(n-1)的格子,對於這些格子,第一個方陣的對應格子。 ==== 加邊法 ==== 當n為大於等於5的正整數時,此方法可由n-2階幻方外圍加上一圈來構造n階幻方。 以<math>6</math>阶为例子,先排出<math>4</math>阶的幻方,如上图,再将图中每一个数都加上<math>8m+2=10</math>,有下图:<br /> <math>\begin{bmatrix} 11 & 25 & 24 & 14 \\ 22 & 16 & 17 & 19 \\ 18 & 20 & 21 & 15 \\ 23 & 13 & 12 & 26 \end{bmatrix}</math><br /> 在外围加上一圈格子,把<math>1,2,3,\dots,8m+2</math>和<math>16m^2+8m+3,16m^2+8m+4,\dots,(4m+2)^2</math>这些数安排在外圈格子内,但要使相对两数之和等于<math>16m(m+1)+5</math>。对于<math>m=1</math>这些数是:<math>1,2,3,4,5,6,7,8,9,10</math>;<math>27,28,29,30,31,32,33,34,35,36</math>。<br />结果如下:<br /> <math>\begin{bmatrix} 1 & 9 & 34 & 33 & 32 & 2 \\ 6 & 11 & 25 & 24 & 14 & 31 \\ 10 & 22 & 16 & 17 & 19 & 27 \\ 30 & 18 & 20 & 21 & 15 & 7 \\ 29 & 23 & 13 & 12 & 26 & 8 \\ 35 & 28 & 3 & 4 & 5 & 36 \end{bmatrix}</math> ==== 方陣合成法 ==== 當n可以分解成兩個大於等於3的正整數a與b的乘積時,此方法可由a階幻方與b階幻方來構造n階幻方。 # 以a(k)表示a階幻方中的每一個數字加上k*a<sup>2</sup>的結果,則所有的a(k)都是幻方,且a(0)=原本的a階幻方。 # 將b階幻方中的數字k都用幻方a(k-1)取代。 ===編程語言參考實現=== #include<stdio.h> int a[17],b[17],m; void s(int i) { /*搜索全部四階幻方,C代碼,運行時間7秒*/ int n=0,j=0; while(++j<17) if(!a[j]) { a[b[i]=j]=1; switch(i) { case 1:case 2:case 3:case 5:case 6:case 7:case 9:case 10:s(i+1);break; case 11:if(b[6]+b[7]+b[10]+b[11]==34)s(12);break; case 4:case 8:case 12:if(b[i-3]+b[i-2]+b[i-1]+b[i]==34)s(i+1);break; case 13:if(b[1]+b[5]+b[9]+b[13]==34&&b[4]+b[7]+b[10]+b[13]==34)s(14);break; case 14:case 15:if(b[i-12]+b[i-8]+b[i-4]+b[i]==34)s(i+1);break; case 16:for(printf("\n"),++m;++n<17;n%4?0:printf("\n"))printf("%2d ",b[n]); } a[j]=0; } } int main(void) { s(1); printf("四階幻方總數量:%d(含旋轉反射相同)",m); return 0; } ===四階幻方全解搜索(C/C++)<ref>{{cite web |url=http://blog.csdn.net/mhl_1208980380/article/details/54342165 |title="所有四阶幻方" |language=zh-cn |date= |accessdate=2017-01-11 |archive-date=2017-01-13 |archive-url=https://web.archive.org/web/20170113110811/http://blog.csdn.net/mhl_1208980380/article/details/54342165 |dead-url=no }}</ref>{{需要更好来源}}=== <syntaxhighlight lang="C"> #include<stdio.h> int a[17],b[17],m; void s(int i) { /*搜索全部四階幻方,C代碼,運行時間7秒*/ int n=0,j=0; while(++j<17) if(!a[j]) { a[b[i]=j]=1; switch(i) { case 1:case 2:case 3:case 5:case 6:case 7:case 9:case 10:s(i+1);break; case 11:if(b[6]+b[7]+b[10]+b[11]==34)s(12);break; case 4:case 8:case 12:if(b[i-3]+b[i-2]+b[i-1]+b[i]==34)s(i+1);break; case 13:if(b[1]+b[5]+b[9]+b[13]==34&&b[4]+b[7]+b[10]+b[13]==34)s(14);break; case 14:case 15:if(b[i-12]+b[i-8]+b[i-4]+b[i]==34)s(i+1);break; case 16:for(printf("\n"),++m;++n<17;n%4?0:printf("\n"))printf("%2d ",b[n]); } a[j]=0; } } int main(void) { s(1); printf("四階幻方總數量:%d(含旋轉反射相同)",m); return 0; } </syntaxhighlight> ==== 奇數階幻方算法的[[Java]]語言實現==== <syntaxhighlight lang="java"> /** * @author: contribute to wikipedia according GNU * @description:用於創建奇數階的幻方 */ public class magic_squre_odd { static int[][] matrix; static int n; public static void magic_squre_odd_generate() { matrix = new int[n][n]; //所有的數初始化為0 matrix[0][(n-1)/2] = 1; int x = 0,y = (n-1)/2; //count:記住已經插入過的數 for(int count = 2; count<=n*n;count++) while(true) { //先x-1 y+1 x--; y++; //判斷是否可以插入 while(true) {//循環判斷是否越界,直到一個地方不越界為止 //判斷是否越界: //越上界x<0,則移到最下方x=x+n,y不變; continue if(x<0) { x += n; continue; } //越右界y>=n,則y=y-n,x不變;continue if(y>=n) { y -= n; continue; } //循環判斷是否該位置已經有數據,直到找到一個空位 //如果有數據,則移到x = x + 2;y = y - 1; continue if (y<0){y+=n;continue;} if(matrix[x][y] != 0 ) { x += 2;y -= 1; if (x>=n){x-=n;continue;} if (y<0){y+=n;continue;} 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(); } } </syntaxhighlight> 以下是本算法將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 ==== <math>4</math>階幻方算法的Java語言實現 ==== <syntaxhighlight lang="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) && (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(); } } </syntaxhighlight> 以下是本算法輸出的結果: 對調之前的樣子: 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_ == 研究价值 == 知名华人数学家[[陈省身]]曾在数学演讲中说幻方只是一个奇迹,它在数学中没有引起更普遍深刻的影响,不属于“好的数学”。<ref>{{cite news |url=http://news.hexun.com/2015-03-02/173643288.html |title=陈省身:如何做“好的数学” |author=黄且圆 |journal=[[天津日报]] (摘自数学家[[杨乐]]夫人黄且圆所著的《大学者》); [[和讯网]] (转载网站) |language=zh-cn |date=2015年3月2日 |access-date=2019年9月29日 |quote="可惜幻方只是一个奇迹,它在数学中没有引起其他更普遍深刻的影响。相反地,另外一个奇迹,所有的圆、圆的周长和它的直径之比都是一个不变的数,数学上称之为圆周率,记作。这个结果可重要了,因为这个数渗透了整个数学!...幻方只是一个偶然现象,虽很巧妙,但不属于好的数学。" |archive-date=2019年9月29日 |archive-url=https://web.archive.org/web/20190929050744/http://news.hexun.com/2015-03-02/173643288.html |dead-url=no }}</ref> 对幻方的学习和研究一直局限于[[趣味数学]]本身,更接近数字游戏或[[文字游戏]],缺乏与主流数学的联系(和[[璇玑图]]在中国诗歌中的地位有一些相似)。数学和物理中也有具有更多学术价值的特殊数字方阵,如推动了[[试验设计]]研究的[[拉丁方陣]]和已有应用的[[阿达玛矩阵]],还有在[[量子力学]]中有重要价值的[[泡利矩阵]]及其推广版本[[盖尔曼矩阵]]。[[魔术方块]]则可以与[[群论]]建立联系(见[[魔方群]]),可以作为[[抽象代数]]的入门教具,也是[[计算群论]]的研究案例之一,并非单纯的几何玩具。高性能的计算机诞生后,幻方、[[幻星]]、素数环(prime ring problem)等很多这类需要满足特殊规律的填数问题,只要所需的数字规模不大,都可以考虑通过[[深度优先搜索]]算法暴力求解和枚举。 == 艺术与流行文化 == * 德国画家与雕刻家[[阿尔布雷希特·丢勒]]曾在一幅名作《忧郁》(Melencolia I)的角落中画下一个幻方。这个著名的幻方图也被知名工程数学软件[[MATLAB]]加入自己的帮助文档中。{{citation needed}} == 参见 == * [[九宫图]] * [[九宫算]] * [[洛书]] * [[幻圆]] <!--* {{link-en||Antimagic square|Antimagic square}}--> <!--* {{link-en||Associative magic square|Associative magic square}} * {{link-en||Combinatorial design|Combinatorial design}} * {{link-en||Freudenthal magic square|Freudenthal magic square}} * {{link-en||John R. Hendricks|John R. Hendricks}} * {{link-en||Hexagonal tortoise problem|Hexagonal tortoise problem}}--> <!--* {{link-en||Magic cube classes|Magic cube classes}} * {{link-en||Magic series|Magic series}} * {{link-en||Most-perfect magic square|Most-perfect magic square}} * {{link-en||Nasik magic hypercube|Nasik magic hypercube}}--> * [[素数倒数幻方]] <!--*{{link-en||Room square|Room square}} * {{link-en||Sigil (magic)|Sigil (magic)}} * {{link-en||Sriramachakra|Sriramachakra}}--> * [[數獨]] * [[未解决的数学问题]] * [[吠陀方形]] <!--* {{link-en||Magic polygon|Magic polygon}}--> * [[Frenicle 标准型式]] * [[数字推盘游戏]] * [[泛對角幻方]] == 參考資料 == === 引用 === {{reflist}} === 延伸阅读 === * {{cite book |author=高治源 |title=九宫图探秘 |publisher=香港天马图书有限公司 |language=zh-hk |year=2004}} * {{cite book |author=张道鑫 |title=素数幻方 |publisher=香港天马图书有限公司 |language=zh-hk |year=2003}} * {{cite book |author=李杭强 |title=趣味数学幻方 |publisher=香港天马图书有限公司 |language=zh-hk |year=2002}} * {{cite book |author=林正禄 |title=开拓智力的奇方——幻方 |publisher=香港天马图书有限公司 |language=zh-hk |year=2001}} == 外部链接 == {{Portal|中國數學史}} * [https://web.archive.org/web/20190218042229/http://mathworld.wolfram.com/MagicSquare.html 幻方介绍及其建造方法(英语)] * [https://web.archive.org/web/20090425060356/http://oddest.nc.hcc.edu.tw/mqmain.htm 一個小學老師對幻方的研究] {{Authority control}} {{DEFAULTSORT:magic square}} [[Category:幻方| ]] [[Category:矩陣]] [[Category:中国数学发现]] [[Category:数学中未解决的问题]]
该页面使用的模板:
Template:Authority control
(
查看源代码
)
Template:Citation needed
(
查看源代码
)
Template:Cite book
(
查看源代码
)
Template:Cite news
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:Main
(
查看源代码
)
Template:Portal
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:需要更好来源
(
查看源代码
)
返回
幻方
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息