資料結構之魔方程式

2021-07-11 20:15:19 字數 1191 閱讀 9208

乙個魔方(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...