/*接上篇
對了,我是來找規律的,找幻立方的生成方法的
先看看這個7階的完美幻立方
初始位置1是在4-1-1(第4行,第1列,第1層,0為基數)
下一步的位置與上一步的相對位移是4-2-2
7的倍數後有個跳步,因為按4-2-2規則,如果不跳的話8的位置就是1的位置,總不能把1給換了吧
7的倍數後的數與前數的相對位移是2-4-0
7*7=49的倍數後又有乙個跳步,同樣,按照前面的規則,如果不跳的話就沒得走了
跳步的相對位移是2-3-3
我們把階數step,起始位置point0,移步規則deltapoint,7倍數的跳步規則deltaline,49倍數的跳步規則deltaside都寫成引數
這樣建立幻立方的通用方法就出來了
*/func createcube(#step: int, #point0:(row:int, col:int, deep:int),#deltapoint:(row:int, col:int, deep:int),#deltaline:(row:int, col:int, deep:int),#deltaside:(row:int, col:int, deep:int)) -> ([[[int]]])?
var p = point0
var iput = 1
cube[p.row][p.col][p.deep] = iput++
var time = step * step * step
doelse}}
}p = nextp
cube[p.row][p.col][p.deep] = iput++
}while(time-- > 0)
return nil
}//測試方法
func testcreateperfectcube7()
}//testcreateperfectcube7()
//看看下面這列印的,頓時覺得自己還真有點三腳貓的功夫
/*第0層
[226,252,320,45,64,139,158]
[115,183,209,277,296,28,96]
[4,72,147,166,234,253,328]
[285,304,29,55,123,191,217]
[174,242,261,336,12,80,99]
[63,131,150,218,293,312,37]
[337,20,88,107,182,201,269]
第1層[41,60,128,154,222,290,309]
[273,341,17,85,111,179,198]
[155,230,249,317,49,68,136]
[93,119,187,206,274,300,25]
[325,1,76,144,163,238,257]
[214,282,308,33,52,120,195]
[103,171,239,265,333,9,84]
第2層[192,211,286,305,30,56,124]
[81,100,175,243,262,330,13]
[313,38,57,132,151,219,294]
[202,270,338,21,89,108,176]
[140,159,227,246,321,46,65]
[22,97,116,184,210,278,297]
[254,329,5,73,141,167,235]
第3層[301,26,94,113,188,207,275]
[232,258,326,2,77,145,164]
[121,196,215,283,302,34,53]
[10,78,104,172,240,266,334]
[291,310,42,61,129,148,223]
[180,199,267,342,18,86,112]
[69,137,156,231,250,318,43]
第4層[109,177,203,271,339,15,90]
[47,66,134,160,228,247,322]
[279,298,23,98,117,185,204]
[168,236,255,323,6,74,142]
[50,125,193,212,287,306,31]
[331,14,82,101,169,244,263]
[220,288,314,39,58,133,152]
第5層[260,335,11,79,105,173,241]
[149,224,292,311,36,62,130]
[87,106,181,200,268,343,19]
[319,44,70,138,157,225,251]
[208,276,295,27,95,114,189]
[146,165,233,259,327,3,71]
[35,54,122,190,216,284,303]
第6層[75,143,162,237,256,324,7]
[307,32,51,126,194,213,281]
[245,264,332,8,83,102,170]
[127,153,221,289,315,40,59]
[16,91,110,178,197,272,340]
[248,316,48,67,135,161,229]
[186,205,280,299,24,92,118]
ismagiccube 檢查
經檢查,行的和都是相等的
經檢查,列的和都是相等的
經檢查,深的和都是相等的
前檢視的各條對角線的和相等
左檢視的各條對角線的和相等
俯檢視的各條對角線的和相等
經檢查,主對角線和是相等的
經檢查,輔對角線row和是相等的
經檢查,輔對角線col和是相等的
經檢查,輔對角線deep和是相等的
*//*
這個幻立方的牛b之處還不止這些,看看齊魯晚報上是怎麼說的
「這個七階幻立方的主檢視的七層,每層都是完美的。也就是說,每層的七行、七列、十四個斜行的七數之和都是幻和1204。而且第四層還是中心對稱的,中心數是172,所有對稱的兩數之和都是344。
這個幻立方的整體也是中心對稱的。」 */
幻立方解法之151階
測試方法 func testcreatecube151 testcreatecube151 為了能在執行過程中觀察到一下資訊,在createcube中增加了兩行 已列印資訊 var time step step step println 總數 time 這是第一行 do while time 0 接...
N(奇數)階幻方解法
3階8 1635 7492 5階17241 815235 714164 6132022 1012 1921311 182529 include includeusing namespace std const int n 9 定義階數,當前9階 該演算法只適合奇數階幻方 int main int a...
三階幻方python解法
三階幻方 1 9共9個數字填入九宮格中,九宮格中間元素為5,各行 列 對角線元素相加和為15。求解出所有符合條件的排列。python解法1 由於九宮格中間元素已確定,剩下元素中選擇乙個數填入tmp 0 0 再選擇乙個數填入tmp 0 1 則剩下元素都可根據已填元素確定,通過兩層巢狀迴圈實現。lst ...