我們有一個簡單3x3的魔術方陣可以寫滿數字來自0于9與重復。每行元素的總和必須等于每列元素的總和,對角線無關緊要。
我們需要計算填充這個正方形的方法數量,因此每行和每列的總和等于N。
uj5u.com熱心網友回復:
讓我們的矩陣是
[[a0, a1, a2],
[a3, a4, a5],
[a6, a7, a8]]
行的總和將是:
a0 a1 a2 = N
a3 a4 a5 = N
a6 a7 a8 = N
和列:
a0 a3 a6 = N
a1 a4 a7 = N
a2 a5 a8 = N
對于每個常數N,我們有 9 個未知數的 6 個方程。事實證明,最后一個方程依賴于其他方程,所以我們實際上只有 5 個獨立方程,因此最終有 4 個自由變數。
如果您針對給定的 N 求解方程組,則可以對這 4 個變數進行暴力破解,然后只需驗證其余變數是否決議為范圍內的整數值[0, 8]。下面是一個例子N=11:
a1 = 1 a5 1 a6 1 a8 1 a9 -11
a2 = -1 a5 -1 a8 11
a3 = -1 a6 -1 a9 11
a4 = -1 a5 -1 a6 11
a5 = arbitrary
a6 = arbitrary
a7 = -1 a8 -1 a9 11
a8 = arbitrary
a9 = arbitrary
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387545.html
上一篇:將9個字符數字轉換為int或unsignedint的最瘋狂最快的方法
下一篇:Python上的導數
