Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7.36(游戲:八皇后問題)經典的八皇后難題是要將八個皇后放在棋盤上,任何兩個皇后都不能相互攻擊(沒有兩個皇后在同行、同列、同一對角線)。編寫程序顯示一個解決方案
- 題目
- 題目描述
- 破題
題目
題目描述
***7.36(游戲:八皇后問題)經典的八皇后難題是要將八個皇后放在棋盤上,任何兩個皇后都不能相互攻擊(沒有兩個皇后在同行、同列、同一對角線)。編寫程序顯示一個解決方案
破題
算法理解:點擊這里跳轉
設置三個長度均為8的數組,分別存放放置了“皇后”的y值、y=x+b的截距
從第一列開始遍歷每一列,遍歷范圍[1, 8]中的整數值,作為y值,并存入y值數組(注意:需要判斷y值是否重復,如果重復則重新生成)。計算y=x+b的截距,并存入截距數組(注意:需要判斷截距值是否重復,如果重復則重新生成y值)
此時,8個“皇后”的在坐標軸的位置是:
(1, y[0])
(2, y[1])
(3, y[2])
(4, y[3])
(5, y[4])
(6, y[5])
(7, y[6])
(8, y[7])
輸出結果
總結
以上是生活随笔為你收集整理的Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第7章:***7.3
- 下一篇: Java黑皮书课后题第8章:*8.1(求