乙個魔方(magic square)就是由1到n平方的整數構成的n*n矩陣,其中每行每列以及主對角線上的數字之和都相等。
當n為奇數時,coxeter法則可以產生魔方:
把1放入第一行最中間的方格中。向左上方移動,並按照數字的遞增順序,把數字填入空方格。如果移出了魔方(即越過了魔方邊界),則進入魔方對邊的對應放歌。繼續填寫方格。如果乙個方格已被填入數字,則向下繼續填寫。
魔方程式涉及到的coxeter法則屬於群論。
魔方程式迭**法:
/*魔方程式-迭代*/
#include
#include
#define max_size 15 /* maximum size of square */
void main()
if(!(size % 2))
for(i = 0; i < size; i++)
for(j = 0; j < size; j++)
square[i][j] = 0;
square[0][(size-1) / 2] = 1; /* middle of first row */
/* i and j are current position */
i = 0;
j = (size-1) / 2;
for(count = 2; count <= size*size; count++)
}
魔方程式遞迴寫法:
/*魔方程式-遞迴*/
#include
#include
#define max_size 15 /* maximum size of square */
void checkinput(int size)
if(!(size % 2))
}void initsquare(int size, int sq[max_size])
void magicsquare(int i, int j, int n, int size, int sq[max_size])
else
magicsquare(i,j,n+1,size,sq);
}}void output(int size, int sq[max_size])
printf("\n\n");
}void main()
資料結構之什麼是資料結構
先看看官方怎麼說的 資料結構是計算機儲存 組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。個人認為 和鬥地主乙個道理。資料就是你手裡牌,資料結構就是怎麼組合你的牌比...
資料結構之儲存結構
儲存結構是資料 的邏輯結構 用計算機語言的實現,常見的 儲存結構 有 順序儲存 鏈式儲存 索引儲存 以及雜湊儲存 其中雜湊所形成的儲存結構叫 雜湊表 又叫雜湊表 因此雜湊表也是一種儲存結構。棧只是一種抽象資料型別,是一種邏輯結構,棧邏輯結構對應的順序儲存結構為順序棧,對應的鏈式儲存結構為鏈棧 迴圈佇...
資料結構之線性結構
資料結構學習虛函式,幾個知識點 1 抽象類函式本身不能直接例項化,需要其子類例項化虛函式,才能例項化。繼承抽象類的子類必須重寫虛函式,具體函式可實現,也可不實現。2 const修飾符,若修飾函式,則函式引數不能被改變。若修飾成員變數,則成員變數在使用過程中不被改變。修飾傳入引數,則避免引數被改變。3...