魔方陣演算法是怎麼解出來的

2021-03-08 11:27:40 字數 1701 閱讀 6381

1樓:傻氣_豬

麻煩少少,其實你在網上也可以找到些,種類繁多。

奇數用的是常用的斜線填數法

偶數的演算法是:

當n為4的倍數時:採用對稱元素交換法。首先把數1-n^2按行從上至下,從左至右填人方陣的n×n格。

然後,把方陣的所有4 ×4子方陣中的兩對角線上位置上的數固定下來不動;所有其它位置上的數關於方陣中心作對稱交換,也就是把元素a(i,j)與元素a(n+1-i,n+ 1-j)的值交換。

當n為非4倍數的偶數(即4m+2形)時:首先把大方陣分解為4個奇數(2m+1階)子方陣。上述奇數階魔方給分解的4個子方陣對應賦值,上左子方最小(i),下右子次小(i+v),下左子方最大(i+3v),上右子方次大(i+2v),即4個子方陣對應元素相差v,其中v=n*n/4,然後作相應的元素交換:

a(i,j)與a(i+u,j)在同一列做對應交換(jn-t+2)

a(t,1)與a(t+u,1);a(t,t)與a(t+u,t)兩對元素交換

其中u=n/2,t=(n+2)/4

我寫的程式:(比較傻的方法,因為昨天太晚了不想優化了:p)

include

#define n 100

void main()

void n1(int n)

count=0;

for(i=0;i=m)

j-=m;

} for(i=m,j=(m-1)/2+m;count<2*m*m;)

if(i=2*m)

j-=m;

} for(i=0,j=(m-1)/2+m;count<3*m*m;)

if(i<0)

i+=m;

if(j>=2*m)

j-=m;

} for(i=m,j=(m-1)/2;count<4*m*m;)

if(i=m)

j-=m;

} for(i=0;in-v+1;j++)

for(j=n-v+2;j

t=num[v-1][0];

num[v-1][0]=num[v+m-1][0];

num[v+m-1][0]=t;

t=num[v-1][v-1];

num[v-1][v-1]=num[v+m-1][v-1];

num[v+m-1][v-1]=t;

count=0;

for(i=0;i

for(j=0;j

2樓:cfv呆呆獸

這個只能實現奇價的:

演算法:魔方陣的排列規律(奇數陣):

⑴將1放在第一行中間一列。

⑵從2開始直到n×n止各數依次按下列規則存放:每一個數存放的行比前一個數的行數減1,列數加1。

⑶如果上一個數的行數為1,則下一個數的行數為n,列數加1。如果上一個數的列數的n時,下一個數的列數為1,行數減1。

⑷如果按上面的規則確定的位置上已有數,或上一個數是第一行第n列時,則把下一個數放在上一個數的下面。

或者這個也可以:

3樓:匿名使用者

1+1=2 2+2=4

馬老師您可以幫我看看這兩塊剛解出來的翡翠是什麼貨色嗎??謝謝了

這料太差了,裂痕和雜質太多,不好做掛件,不過60塊錢還是可以玩玩的。翡翠原石真沒有研究 不過這兩塊都應該是磚頭料吧 太粗了 應該是賭輸了 馬老師您好,想您幫我看看這兩塊玉,這品相 怎麼樣,如可以建議入哪塊,謝謝!從你拍攝 看,第一塊比第二塊乾淨些,透明度都差不多,這種翡翠收藏價值很低,如果買來作為裝...

魔方魔方告訴我,你是怎麼數學啟蒙的

3全部提取碼 c8m2 巧虎快樂數學 是利用伊索寓言故事來教小朋友們學習數學的,當然還是由我們熟悉的主人公 巧虎 琪琪來帶領大家一起學習。個人感覺 巧虎快樂數學 利用伊索寓言的方法是非常讚的,讓小朋友們在寓言故事中不知不覺就學會了數學知識,在學習這方面,巧虎的好點子確實值得讚揚。不管是 巧虎英語學習...

校園的早晨魔方格作文要寫校園的早晨是怎麼樣的

校園來的早晨是寧靜的。自薄薄的晨霧像紗一樣籠罩著校園,教學樓在淡淡的晨霧中若隱若現。校園的早晨是熱鬧的。當同學們陸續來到學校,校園裡頓時變得歡樂起來。操場上到處可見同學們晨練的身影。高年級的同學們正在籃球場上飛快地奔跑著,他們熟練地傳球 運球 投籃,一連序列雲流水般的動作讓觀眾們大呼精彩。校園的早晨...