close
這個問題比上一題的奇數階魔方陣還難做,同樣相關資料參考了尤怪之家(http://home.educities.edu.tw/oddest/)的資料,採用裏面的"斜角註記法"修改成程式,這個程式只能用於4的倍數階的魔方陣填寫
填製時,先將整個方陣劃分成 k2 個 4 階方陣,然後在每個 4 階方陣的對角線上做記號。接著自左上角開始,由左而右、由上而下,遇到有記號的位置才填數字,但不管是否填入數字,每移動一格數字都要加 1。最後自右下角開始,由右而左、由下而上,遇到沒有數字的位置就填入數字,但每移動一格數字都要加 1。填滿方陣後,即是 4 k 階的魔方陣了
依據以上網站內的說明,程式架構拆成3個主體:
1.先產生1個4階的基礎陣列,然後在陣列的對角線做記號。為了方便後續程式書寫,基礎陣列預設值是-1,做記號的位置則把數值改成0
2.依據設定的階數把基礎陣列組合成更大的陣列,當然做記號的部分完全符合填製規則
3.實際數值的填寫,用3重迴圈分兩階段填寫:
a.第一階段從左上角開始,由左而右、由上而下,用雙迴圈填寫。跳過不是0的位置(沒有記號),只在數值是0的位置(有記號)用置換法把數值寫入
b.第二階段從右下角開始,由右而左、由下而上,用雙迴圈填寫。只針對數值為-1的位置(還未填寫數值)用置換法把數值寫入
在填寫程式架構前再加上判斷輸入的階數是否為4的倍數的程式,完成整個程式
文章標籤
全站熱搜
留言列表