魔方陣計算機
產生正規魔方陣,讓每列、每行與兩條主對角線的總和皆相同。
產生魔方陣
選擇3至15之間的整數階數。
關於魔方陣
n階正規魔方陣是n列n行的方陣,從一到n的平方的每個整數都恰好出現一次。其特徵是每列、每行和兩條長對角線的總和相同,這個共同總和稱為魔術常數。由於所有數值預先已知,可用n乘以n的平方加一,再除以二求得常數。三階的常數為十五,四階為三十四。
本計算機採用固定的構造方法產生標準方陣,不進行隨機搜尋。奇數階使用暹羅法:先將一放在最上列中央,接著每個數往上一列、往右一行,超出邊界時從另一側接續。若目標格已有數字,就改為從原位置往下一列。重複此規則即可填滿所有格子,並讓指定各線的總和相等。常見三階魔方陣的第一列為8, 1, 6。
階數可被四整除時,使用雙偶階互補法:先依一般計數順序填入數字,再將對稱圖案中的數替換成相對於n的平方加一的補數。經典四階排列因此以16, 2, 3, 13開頭。無法被四整除的偶數階稱為單偶階,先組合四個相關的奇數階子方陣,再精確交換各象限中的部分行。
魔方陣在趣味數學、藝術、建築與文化象徵中歷史悠久,至今仍適合用來教授循環移動、對稱性、構造演算法、矩陣索引與不變量證明。它也能成為有趣的數字謎題:移除完整方陣中的幾個數,保留目標常數,讓學習者還原缺漏的數字。
產生程序具有確定性,相同階數總會得到同一個有效排列。該排列的許多旋轉、鏡射與其他置換也同樣有效。最高十五階的限制可維持網頁可讀性,同時展示三類構造方法。驗證時,先將任意一列相加並與魔術常數比較,再檢查一行和兩條對角線。所有總和都應一致,指定範圍內的每個整數也應恰好出現一次。
魔方陣範例
| 階數 | 魔術常數 | 構造方式 |
|---|---|---|
| 3 | 15 | 以暹羅法構造的奇數階魔方陣。 |
| 4 | 34 | 以互補儲存格構造的雙偶階魔方陣。 |
| 5 | 65 | 另一個包含1至25的奇數階魔方陣。 |
| 6 | 111 | 由四個奇數階子方陣組成的單偶階魔方陣。 |
如何產生魔方陣
- 輸入3至15之間的整數階數。
- 選取「產生魔方陣」,系統會採用適合的構造演算法。
- 查看完整數字方陣及其魔術常數。
- 將一列、一行與各條主對角線分別相加,驗證結果。
魔方陣常見問題
什麼樣的方陣是魔方陣?
每列、每行與每條主對角線的總和皆相同。正規魔方陣中,一到n的平方的每個整數都恰好出現一次。
如何計算魔術常數?
將一到n的平方的所有整數相加,再除以列數。等價公式為n乘以n的平方加一,再除以二。
每種大小都有魔方陣嗎?
所有大於二的階數都有正規魔方陣。一階和二階無法提供標準的非平凡構造,因此不包含在本產生器中。
為什麼同階的有效魔方陣可能長得不同?
魔方陣並非唯一。旋轉、鏡射及許多更深入的變換都能保留各線總和相同的性質。
產生的方陣是隨機的嗎?
不是。本計算機使用確定性的構造演算法,相同大小總會產生同一個可重現的魔方陣。