8皇后問題演算法

2021-05-07 23:25:39 字數 498 閱讀 8384

///

//八皇后問題 回朔法 

//該演算法的思路是:每個皇后先後從第一列出發,找合適自己的列的位置。當找到合適的位置

//   則下乙個皇后出發。如果沒找到則回朔到上乙個皇后繼續找,知道8個皇后全有合適位置為止。

#include

#define max 8

int match(int line,int p)   //檢測是否符合條件

;   //記錄皇后的列座標

int p=0,k=0;           //p指向當前皇后即行座標  k記錄解的個數

int i;

while(1)

else  //不到8個皇后直接下乙個皇后

}else         

line[p]++;}}

else                   //直接下一列

line[p]++;}}

printf("%d",k);

}注意考慮好各種極限位置

演算法分析之 8皇后問題

八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。使用到回溯演算法 高斯認為有76種方案。1854年在柏林的象棋雜...

8皇后問題

會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a b1b2.b8,其中bi為相應擺法中第i行皇后所處的列數。已經知道8皇后...

8皇后問題

8 皇后問題 描述 八皇后問題是大數學家高斯於1850年提出來的。該問題是在8 8的西洋棋棋盤上放置8個皇后,使得沒有乙個皇后能 吃掉 任何其他乙個皇后,即沒有任何兩個皇后被放置在棋盤的同一行 同一列或同一斜線上。輸出8皇后問題所有結果。輸入 沒有輸入。輸出 每個結果第一行是no n 的形式,n表示...