八皇后 擺放 問題

2021-07-25 07:38:22 字數 783 閱讀 9528

八皇后

問題,是乙個古老而著名的問題,是

回溯演算法

的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於2023年提出:在8×8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。

c語言實現:
#include int ba[8][8]=;

int count = 0;

int check(int row ,int column)

for ( i = 0; i < row; ++i) }

for ( i = 0; i < column; ++i) }

i=row-1;

j=column-1;

while(i>=0 && j>=0)

i--;

j--;

} //右上

i=row-1;

j=column+1;

while(i>=0 && j<8)

i--;

j++;

} return 1;

}void print()

printf("\n");

} printf("\n");

}void solve(int row)else

} //回溯

ba[row][column]=0; }}

int main(int argc, char const *argv)

N皇后擺放問題

description input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如果n 0,表示結束。output 共有若干行,每行乙個正整數,表示對應輸入行的皇后的不同放置數量。sample input18 50sample output192 10解題思路 用dfs。一行一行的擺放...

八皇后問題

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

八皇后問題

include iostream.h int a 8 8 棋盤 int r 8 結果 int i,j int count 0 void init i j 0 int judge int x,int y for int mi x 1,mj y mi 1 mi for int ri x 1,rj y 1...