八皇后問題思路 八皇后問題回溯算法c語言
八皇后問題是一個(gè)古老而著名的問題,是回溯算法的一個(gè)典型例子。19世紀(jì)著名數(shù)學(xué)家高斯在1850年提出了一個(gè)問題:在8X8格棋上放置8個(gè)皇后,使它們不能互相攻擊,即任何兩個(gè)皇后不能在同一行、同一列或同一對(duì)
八皇后問題是一個(gè)古老而著名的問題,是回溯算法的一個(gè)典型例子。
19世紀(jì)著名數(shù)學(xué)家高斯在1850年提出了一個(gè)問題:在8X8格棋上放置8個(gè)皇后,使它們不能互相攻擊,即任何兩個(gè)皇后不能在同一行、同一列或同一對(duì)角線上。有多少種鐘擺。高斯認(rèn)為有76種選擇。1854年,不同的作者在柏林的國際象棋雜志上發(fā)表了40種不同的解決方案。用圖論方法得到92個(gè)結(jié)果。對(duì)于八皇后問題的實(shí)現(xiàn),如果結(jié)合動(dòng)態(tài)圖形演示,對(duì)算法的描述可以更加生動(dòng)、生動(dòng),教學(xué)效果良好。下面是一個(gè)用turboc實(shí)現(xiàn)的八皇后問題的圖形程序,可以演示所有92個(gè)解。問題描述:八皇后問題是一個(gè)古老而著名的問題,這是回溯算法的一個(gè)典型例子:把八皇后放在8X8棋盤上,這樣它們就不能互相攻擊,即任意兩個(gè)皇后不能在同一行、同一列或同一對(duì)角線上,問擺多少種。解題:采用回溯算法,即從第一行開始,依次搜索皇后可以放置的位置;如果找到,則放置皇后,再搜索下一行;如果行中沒有皇后可以放置的位置,回溯算法用于返回到前一行,清除可以放置皇后的行的信息,并從行中皇后最初放置的下一個(gè)位置探索皇后可以放置的位置。當(dāng)找到所有解時(shí),每次找到一組解時(shí),清除解組中最后一個(gè)皇后的位置信息,并探索皇后可以放置在行中的另一個(gè)位置,然后依次回溯解。