八皇后問題的進化 3 最終的最精簡的實現

2021-05-27 09:52:10 字數 761 閱讀 1891

經過修改的八皇后最精簡的實現,總共有92種解法,也就50行**。

**是簡單的,少量的,但是思考的過程確實非常曲折的,繁複的,之前實現的八皇后太過低效和雜亂,主要是因為自身的思考能力還不強,這次作了徹底的修改,同時把以前實現的**也發到了blog上,作為以後可供參考的教訓。本篇是最終的最精減的**:

/* 

8 queens final version 1.9.1

chessboard:row number[1-8],column number[1-8]

*/

#include #include void put_queens(int chessbd,int rnum);

int test(int chessbd,int rnum,int pos );

static int count = 0;

int chessbd[9]; //if it is put in main(),then it is a local variable.[remember to initialize]

void put_queens(int chessbd,int rnum)else

} }

}

int test(int chessbd,int rnum,int pos )

} return ret;

}

int main(int argc,char* argv)

八皇后問題的進化 3 最終的最精簡的實現

經過修改的八皇后最精簡的實現,總共有92種解法,也就50行 是簡單的,少量的,但是思考的過程確實非常曲折的,繁複的,之前實現的八皇后太過低效和雜亂,主要是因為自身的思考能力還不強,這次作了徹底的修改,同時把以前實現的 也發到了blog上,作為以後可供參考的教訓。本篇是最終的最精減的 8 queens...

八皇后的問題

八皇后的問題和馬踏棋盤的思路是一樣,都用到了回溯的思想。也都差不多。這個裡面最精彩的地方用4個一位陣列表示了這個棋盤。這個裡面總共有92組解 展示 include includeint col 8 int right 15 int left 15 int queen 8 int cnt 全域性變數 ...

八皇后的問題

首先介紹一下八皇后的問題。這是乙個古老而著名的問題,指的是在乙個8x8的西洋棋棋盤上,有八個皇后,每個皇后佔乙個 要求皇后之間不會出現相互攻擊的現象,即不能有兩個皇后處在同一行 同一列或同一對角線上。問乙個有多少種不同的排列方法?下面是 includeusing namespace std stat...