首頁 > 其他

用matlab建立n階魔方矩陣

2019-12-25 16:36:45

    所謂魔方矩陣就是每一行的元素之和都相等,每一列之和都相等,對角線元素之和也相等的矩陣。這種矩陣在數學中有著特殊的應用。本經驗就像大家講解一下如何建立n階魔方矩陣。


1

限制條件? ? 所謂魔方矩陣(magic matrix)就是值該矩陣有1~n2的正整數按照一定的規則排列而成,而且每一行、每一列、沒條對角線上的元素都等於n(n2+1)/2。就生成規則而言魔方矩陣可以分為三類,①n為奇數,②n為不能被4整除的偶數,③n為能被4整除的偶數。

2

本例使用第三種情況,即n為能被4整除的偶數,下面是編制的生成n階魔方矩陣的函數magicmatrix(n):


3

下面是呼叫magicmatrix(n)函數生成的12階魔方矩陣,呼叫程式碼為:magicmatrix(n)。這裡的n可以直接輸入,當n能夠被4整除時,則輸出該n階魔方矩陣,當n不能被4整除時,就要求重新輸入n的值。下圖是執行結果。


4

驗證生成的矩陣是否是魔方矩陣?如果是,那矩陣的階是多少,那每一行、列、對角線的和是多少呢?下面我們就對當n=12是生成的矩陣進行驗證。下圖是具體的程式程式碼:


5

第4步程式碼實在matlab的editor裡面編寫的,直接點選選單欄的run就可以執行。執行第4步的程式碼我們可以看到結果為:


6

PS:? ? 經考證表明:魔方源於古代的中國,當時稱為「縱橫圖」。有學著認為「縱橫圖」源於《洛書》。「二九四,七五三,六一八」是文字記錄的最早的3階魔方矩陣,時稱「九宮格」,它最早記載於公元前一世紀的《大戴禮記》「明堂篇」。公元1275年宋朝數學家楊輝在《續古摘奇演算法》中就有關於「縱橫圖」的專門研究。「縱橫圖」經由東南亞、印度、阿拉伯向西方傳播。公元15世紀再由土耳其的君世坦丁堡(現在的伊斯坦布林)傳入歐洲。

IT145.com E-mail:sddin#qq.com