資料結構與演算法Java版 八皇后問題

2021-08-10 13:30:57 字數 638 閱讀 7226

八皇后問題是乙個以西洋棋為背景的問題:如何能夠在8×8的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行、縱行或斜線上。如圖所示:

問題關鍵在於每一列的皇后不能和其他列的皇后在同一行,同一斜線上(正斜線,反斜線均不可)。

public

class

queen

//當前列不能放在前面列i的棋子的反斜線上

if(cols[i] + d < maxqueen)

}for (int i = 0; i < maxqueen; i++)

//沒有放便將位置存放在陣列中

cols[n] = i;

if(n < maxqueen - 1)else

//繼續迴圈,重n列的不同位置再開始

}

}public

void

printqueen()else

}system.out.println();}}

public

static

void

main(string args)

}

以上就完成了八皇后問題的解法。

資料結構 八皇后演算法

八皇后的基本要求是這樣的 在乙個8 8的矩陣上面放置8個物體,乙個矩陣點只允許放置乙個物體,任意兩個點不能在一行上,也不能在一列上,不能在一條左斜線上,當然也不能在一條右斜線上。參考網上資料改寫 如下 include include include includeusing namespace st...

資料結構與演算法 遞迴 八皇后

八皇后問題介紹 八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。由於西洋棋是乙個8 8的棋盤,而且棋盤中總共需要...

資料結構演算法 八皇后問題

八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848 年提出 在 88 格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法 92 理論上應該建立乙個二維陣列來表示棋盤,但是實際上可以通...