亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

C#用遞歸算法解決八皇后問題

2019-11-02 13:51:19
字體:
來源:轉載
供稿:網友

1.引子

  中國有一句古話,叫做“不撞南墻不回頭",生動的說明了一個人的固執,有點貶義,但是在軟件編程中,這種思路確是一種解決問題最簡單的算法,它通過一種類似于蠻干的思路,一步一步地往前走,每走一步都更靠近目標結果一些,直到遇到障礙物,我們才考慮往回走。然后再繼續嘗試向前。通過這樣的波浪式前進方法,最終達到目的地。當然整個過程需要很多往返,這樣的前進方式,效率比較低下。

2.適用范圍

  適用于那些不存在簡明的數學模型以闡明問題的本質,或者存在數學模型,但是難于實現的問題。

3.應用場景

  在8*8國際象棋棋盤上,要求在每一行放置一個皇后,且能做到在豎方向,斜方向都沒有沖突。國際象棋的棋盤如下圖所示:

/uploads/cj/201910/201606151029091.jpg

4.分析

  基本思路如上面分析一致,我們采用逐步試探的方式,先從一個方向往前走,能進則進,不能進則退,嘗試另外的路徑。首先我們來分析一下國際象棋的規則,這些規則能夠限制我們的前進,也就是我們前進途中的障礙物。一個皇后q(x,y)能被滿足以下條件的皇后q(row,col)吃掉

1)x=row(在縱向不能有兩個皇后)

2)y=col(橫向)

3)col + row = y+x;(斜向正方向)

4)col - row = y-x;(斜向反方向)

遇到上述問題之一的時候,說明我們已經遇到了障礙,不能繼續向前了。我們需要退回來,嘗試其他路徑。

我們將棋盤看作是一個8*8的數組,這樣可以使用一種蠻干的思路去解決這個問題,這樣我們就是在8*8=64個格子中取出8個的組合,C(64,80) = 4426165368,顯然這個數非常大,在蠻干的基礎上我們可以增加回溯,從第0列開始,我們逐列進行,從第0行到第7行找到一個不受任何已經現有皇后攻擊的位置,而第五列,我們會發現找不到皇后的安全位置了,前面四列的擺放如下:

/uploads/cj/201910/201606151029092.png

第五列的時候,擺放任何行都會上圖所示已經存在的皇后的攻擊,這時候我們認為我們撞了南墻了,是回頭的時候了,我們后退一列,將原來擺放在第四列的皇后(3,4)拿走,從(3,4)這個位置開始,我們再第四列中尋找下一個安全位置為(7,4),再繼續到第五列,發現第五列仍然沒有安全位置,回溯到第四列,此時第四列也是一個死胡同了,我們再回溯到第三列,這樣前進幾步,回退一步,最終直到在第8列上找到一個安全位置(成功)或者第一列已經是死胡同,但是第8列仍然沒有找到安全位置為止

總結一下,用回溯的方法解決8皇后問題的步驟為:

1)從第一列開始,為皇后找到安全位置,然后跳到下一列

2)如果在第n列出現死胡同,如果該列為第一列,棋局失敗,否則后退到上一列,在進行回溯

3)如果在第8列上找到了安全位置,則棋局成功。

8個皇后都找到了安全位置代表棋局的成功,用一個長度為8的整數數組queenList代表成功擺放的8個皇后,數組索引代表棋盤的col向量,而數組的值為棋盤的row向

量,所以(row,col)的皇后可以表示為(queenList[col],col),如上圖中的幾個皇后可表示為:

queenList[0] = 0;  queenList[1] = 3;   queenList[2] = 1;  queenList[3] = 4;   queenList = 2;

我們看一下如何設計程序:

首先判斷(row,col)是否是安全位置的算法:

bool IsSafe(int col,int row,int[] queenList){ //只檢查前面的列 for (int tempCol = 0; tempCol < col; tempCol++) {  int tempRow = queenList[tempCol];  if (tempRow == row)  {   //同一行   return false;  }  if (tempCol == col)  {   //同一列   return false;  }  if (tempRow - tempCol == row - col || tempRow + tempCol == row + col)  {   return false;  } } return true;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区二区三区不| 亚洲毛片在线免费观看| 国产精品爽黄69| 日韩av电影在线播放| 亚洲国产精品女人久久久| 色偷偷av亚洲男人的天堂| 日韩视频免费观看| 亚洲视频在线免费观看| 川上优av一区二区线观看| 精品国偷自产在线视频| 国产精品伦子伦免费视频| www.国产精品一二区| 成人情趣片在线观看免费| 亚洲欧美激情另类校园| 亚洲一区二区三区777| 亚洲天堂一区二区三区| 欧美日韩中文字幕日韩欧美| 国产日韩欧美夫妻视频在线观看| 日韩欧美国产视频| 日本免费一区二区三区视频观看| 国产精品入口尤物| 黑人精品xxx一区一二区| 久久精品在线视频| 中文在线资源观看视频网站免费不卡| 成人性生交大片免费看小说| 久久99精品久久久久久青青91| 国产成人精品久久二区二区| 国产在线视频欧美| 亚洲午夜小视频| 97碰碰碰免费色视频| 九九久久综合网站| 91美女片黄在线观看游戏| 亚洲国产女人aaa毛片在线| 精品视频—区二区三区免费| 亚洲欧美日韩一区二区三区在线| 国产精品第一视频| 成人黄色激情网| 欧美一区二区三区四区在线| 亚洲人永久免费| 91精品视频观看| 欧美孕妇性xx| 精品女厕一区二区三区| 亚洲香蕉av在线一区二区三区| 日韩av电影中文字幕| 国产精品久久久91| 韩国精品美女www爽爽爽视频| 中文字幕一区二区精品| 91老司机精品视频| 亚洲国产欧美精品| 国产精品久久久久国产a级| 亚洲国产成人一区| 欧美黑人巨大精品一区二区| 久久精品久久精品亚洲人| 91精品国产高清自在线| 欧美国产日韩二区| 国产一区二区三区精品久久久| 日本欧美国产在线| 国产精品久久久久久久久久| 亚洲精品免费在线视频| 精品成人在线视频| 亚洲电影天堂av| 亚洲天堂av电影| 日韩精品视频中文在线观看| 亚洲一区制服诱惑| 欧美黑人国产人伦爽爽爽| 高清一区二区三区四区五区| 日韩成人av在线| 国产精品无av码在线观看| 日韩欧美在线观看视频| 欧美激情国产精品| 成人a免费视频| 国产精品视频yy9099| 亚洲美腿欧美激情另类| 最近2019年手机中文字幕| 国产视频亚洲精品| 亚洲精品中文字幕女同| 亚洲在线一区二区| 全球成人中文在线| 色伦专区97中文字幕| 精品调教chinesegay| 91高清视频在线免费观看| 777777777亚洲妇女| 中文字幕亚洲在线| 欧美精品性视频| 国产精品视频自在线| 欧美激情成人在线视频| 午夜精品久久久久久99热| 久久久久久久av| 国产日韩在线精品av| 日韩成人网免费视频| 亚洲色图欧美制服丝袜另类第一页| 亚洲黄色有码视频| 国产欧美精品一区二区三区介绍| 亚洲一区国产精品| 亚洲男人7777| 久久99精品久久久久久噜噜| 久久天天躁夜夜躁狠狠躁2022| 精品人伦一区二区三区蜜桃网站| 日韩久久精品成人| 日韩国产欧美精品一区二区三区| 青青a在线精品免费观看| 欧美激情中文字幕乱码免费| 日韩欧美中文第一页| 91黄色8090| 亚洲精品狠狠操| 日韩网站在线观看| 成人做爰www免费看视频网站| 日韩中文字幕网站| 久久99久久久久久久噜噜| 亚洲欧洲一区二区三区久久| 成人亚洲欧美一区二区三区| 久久久久免费精品国产| 欧美性猛交xxxx富婆| 久久精品久久久久久| 亚洲女人被黑人巨大进入| 日本国产欧美一区二区三区| 欧美激情精品久久久久久蜜臀| 国产成人精品久久久| 欧美在线观看网址综合| 伊人青青综合网站| 午夜精品理论片| 91在线精品播放| 亚洲精品大尺度| 日韩动漫免费观看电视剧高清| 国产三级精品网站| 成人国产精品一区| 亚洲精品久久7777777| 亚洲精品一区中文| 91精品久久久久久久久青青| 国产精品678| 亚洲美女www午夜| 欧美xxxx14xxxxx性爽| 欧美大片欧美激情性色a∨久久| 亚洲国产成人精品久久| 中文字幕av一区| 精品国产自在精品国产浪潮| 亚洲国产天堂久久综合网| 中文字幕亚洲激情| 国产精品扒开腿做爽爽爽的视频| 亚洲成人网av| 久久久久久久久久久免费精品| 国产精品久久久久国产a级| 亚洲成人黄色在线观看| 欧美日韩成人在线观看| 欧美重口另类videos人妖| 国产精品夜间视频香蕉| 日日摸夜夜添一区| 成人羞羞国产免费| 97视频免费观看| 狠狠色狠狠色综合日日小说| 国产91对白在线播放| 国产精品久久久久77777| 91久久久亚洲精品| 亚洲人成伊人成综合网久久久| 亚洲国产精品资源| 91久久精品国产91久久性色| 欧美在线视频免费| 国内精品久久久久久中文字幕| 久热精品视频在线免费观看| 日韩亚洲国产中文字幕| 国产91精品久久久久久久| 亚洲精品国产精品国产自| 欧美俄罗斯乱妇| 日韩av中文字幕在线播放|