當前位置:編程學習大全網 - 編程語言 - 五階幻方規劃

五階幻方規劃

如圖()中,在下面的圓圈中填入2到6這五個數,使每條直線上的三個數之和相等,通過編程打印出各種填充方法。( )

l

( ) - ( ) - ( )

l

( )

解決問題的關鍵在於“重疊數”。在這節課和下節課中,我們將學習三階方陣,即將九個數按照壹定的要求排列成三行三列。解決問題的關鍵還是“重疊數”。先說壹個典型的例子。

例1在右邊正方形的九個方格中填入九個數字1 ~ 9,使每行、每列、每對角線三個數之和相等。

分析求解:首先要搞清楚每壹行、每壹列、每壹對角線三個數之和是多少。我們可以這樣想:因為九個數1 ~ 9之和是45,正好是三個橫數之和,所以每個橫數之和等於45÷3=15。也就是說,每壹行、每壹列、每壹對角線三個數之和等於15。

九個數字1 ~ 9中,三個不同的數字加起來是15:

9+5+1,9+4+2,8+6+1,8+5+2,

8+4+3,7+6+2,7+5+3,6+5+4。

因此,每壹行、每壹列、每壹對角線上的三個數可以是任意壹個公式中的三個數。

因為中心方塊中的數字在壹個橫排、壹個縱列和兩條對角線上,所以應該同時出現在上述四個公式中,而符合條件的只有5個,所以應該在中心方塊中填入5。同樣,四個角上的數字在壹個橫排、壹個縱列、壹條對角線上,所以應該同時出現在上述三個公式中,滿足條件的有2、4、6、8。所以要在四個角的正方形裏分別填2,4,6,8,保證兩個對角線數之和相等。經過測試,有如下八種不同的填充方法:

以上八個圖形都可以通過旋轉翻轉壹個圖形得到。例如,第壹行中的最後三個數字是通過將第壹個數字依次順時針旋轉90°、180°和270°獲得的。再比如,第二行的所有圖片都是通過沿縱軸翻轉上面的圖片得到的。所以這八卦圖本質上是壹樣的,可以看作是壹種填充方法。

例1中的陣列圖在中國古代被稱為“縱橫圖”和“九宮算”。壹般來說,如果在壹個3×3(三行三列)的網格中填入九個不同的數字,如果每行、每縱列、每對角線三個數之和相等,那麽這樣的圖形稱為三階幻方。

在例1中,如果只要求任意水平行和任意垂直列的三個數之和相等,而不要求兩對角線上的三個數之和相等,則該解不唯壹,因為在例1的解中,兩行或兩列的位置任意互換,不影響每行或每列三個數之和,所以仍是壹個解。

例2用11,13,15,17,19,21,23,25,27做壹個三階幻方。

分析求解:給出的九個數構成壹個等差數列,比較例1和1 ~ 9也是壹個等差數列。不難發現,中間方框中的數字應該是等差數列的第五個數,即19;四個角的方塊中填充的數字為偶數,即13、17、21、25,兩個對角線數字之和相等,即13+25 = 17+21;剩下的數字不難填(見右圖)。

與魔方相對的問題是反魔方。將9個數填入9個3×3(三行三列)的正方形中,使任意壹行、任意壹列和兩條對角線上的3個數之和互不相同。填充的圖形稱為三階反幻方。

例3將前九個自然數填入右邊的九個正方形中,使任意壹行、任意壹列和兩條對角線上的三個數之和互不相同,圖中兩個相鄰自然數的位置也相鄰。

解析及解法:題目要求圖中兩個相鄰自然數的位置也是相鄰的,所以這九個自然數在圖中要按照大小的順序連成壹條不相交的折線。測試結束後,有如下圖所示的三種情況:

從1到9和從9到1逐壹檢查這三種情況,只有第二種情況可以得到如下所示的兩種解。因為第二種情況是螺旋,所以這個問題的解叫做螺旋反幻方。

例4在下圖的九個空格中填入九個數字,使任意行、任意列和兩個。

證明:因為每行三個數之和等於K,* * *有三行,所以九個數之和等於3k。如右上圖所示,有四條虛線穿過中心方塊,每條虛線上三個數之和等於k,四條虛線上所有數之和等於4k,其中只有中心方塊中的數是“重疊數”。九個數各算壹次後,再算三次。所以有

九個數之和+中心方塊中的數×3=4k,

3k+中心廣場的數字× 3是4k,

註:例4中對9的個數和固定數k沒有特殊要求。這壹結論對於解決3×3網格中的數列問題非常實用。

在壹個3×3的網格中,如果要求填充9個不同的素數,並且要求任意壹行、任意壹列和兩條對角線上的3個數之和相等,那麽填充後的圖形稱為三階素數的幻方。

例5求任意壹列、任意壹行、兩條對角線三個數之和等於267的三階素數的幻方。

分析及解決方法:根據例4,中間正方形的數是267 ÷ 3 = 89。因為兩條對角線、壹個中間行、壹個中間列的四組數中,每組的三個數都有89,所以每組剩下的兩個數之和壹定是267-89 = 178。有六組* * *的兩個素數之和是178:

5+173=11+167

=29+149=41+137

=47+131=71+107。

通過實驗,可以得到右圖所示的三階素數的幻方。

  • 上一篇:手槍結構圖(了解手槍構造和工作原理)
  • 下一篇:怎麽用JAVA做個聊天工具
  • copyright 2024編程學習大全網