八皇后問題1

2021-06-06 23:52:02 字數 528 閱讀 7804

#include

using namespace std;

#define n 8

//n代表皇后數

void queen()

{  

int j;

int count=0;   //計算總共的解的數量

int column[n+1];     //column[m]=n 表示第m列,第n行放置了皇后,這裡下表並從0開始

int row[n+1];   //row[m]=1表示第m行沒有皇后,=0表示有皇后

int b[2*n+1];   //b[m]=1表示第m條主對角線沒有皇后,

int c[2*n+1];        //c[m]=1表示第m條次對角線沒有皇后,=0表示有皇后

int numqueen=1;   //計數已經放置的皇后數目,當numqueen=n時候則表示已經完成探測

int good=1;    //good=1表示沒有發生衝突,good=0表示發生衝突

//初始化這些標記

for(j=0;j

例項1 八皇后問題

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

回溯法1 八皇后問題

問題 8x8格的西洋棋上 擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。思路 回溯法是一種試錯方法 1.先選乙個位置試著放置一下,並做 記錄 2.在每次子問題中進行判定時需要過去的 記錄 作為是否可以繼續嘗試的依據 3.最後很關鍵,需要在每次判斷...

八皇后問題

八皇后問題 ackarlix 八皇后問題是乙個古老而著名的問題,是回溯演算法的典型例題。該問題是十九世紀著名的數學家高斯 1850 年提出 在 8x8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有 76種方案。1854 年在...