八皇后問(wèn)題詳解 八皇后12種解法圖
八皇后問(wèn)題是一個(gè)古老而著名的問(wèn)題,是回溯算法的一個(gè)典型例子。19世紀(jì)著名數(shù)學(xué)家高斯在1850年提出了一個(gè)問(wèn)題:在8X8格棋上放置8個(gè)皇后,使它們不能互相攻擊,即任何兩個(gè)皇后不能在同一行、同一列或同一對(duì)
八皇后問(wèn)題是一個(gè)古老而著名的問(wèn)題,是回溯算法的一個(gè)典型例子。
19世紀(jì)著名數(shù)學(xué)家高斯在1850年提出了一個(gè)問(wèn)題:在8X8格棋上放置8個(gè)皇后,使它們不能互相攻擊,即任何兩個(gè)皇后不能在同一行、同一列或同一對(duì)角線上。有多少種鐘擺。高斯認(rèn)為有76種選擇。1854年,不同的作者在柏林的國(guó)際象棋雜志上發(fā)表了40種不同的解決方案。用圖論方法得到92個(gè)結(jié)果。對(duì)于八皇后問(wèn)題的實(shí)現(xiàn),如果結(jié)合動(dòng)態(tài)圖形演示,對(duì)算法的描述可以更加生動(dòng)、生動(dòng),教學(xué)效果良好。下面是一個(gè)用turboc實(shí)現(xiàn)的八皇后問(wèn)題的圖形程序,可以演示所有92個(gè)解。問(wèn)題描述:八皇后問(wèn)題是一個(gè)古老而著名的問(wèn)題,這是回溯算法的一個(gè)典型例子:把八皇后放在8X8棋盤(pán)上,這樣它們就不能互相攻擊,即任意兩個(gè)皇后不能在同一行、同一列或同一對(duì)角線上,問(wèn)擺多少種。解題:采用回溯算法,即從第一行開(kāi)始,依次搜索皇后可以放置的位置;如果找到,則放置皇后,再搜索下一行;如果行中沒(méi)有皇后可以放置的位置,回溯算法用于返回到前一行,清除可以放置皇后的行的信息,并從行中皇后最初放置的下一個(gè)位置探索皇后可以放置的位置。當(dāng)找到所有解時(shí),每次找到一組解時(shí),清除解組中最后一個(gè)皇后的位置信息,并探索皇后可以放置在行中的另一個(gè)位置,然后依次回溯解。對(duì)角線有兩個(gè)方向,也就是對(duì)角線方向。國(guó)際象棋是8*8=64格,數(shù)字是ABCDE。。。??v向編號(hào)123456。。。。。。所以任何網(wǎng)格都有一個(gè)唯一的數(shù)字,比如E3。你可以把它轉(zhuǎn)換成坐標(biāo)(5,3)。如果這個(gè)格子是皇后,5,3=8,5-3=2。那么(4,4)(3,5)和(6,4)(7,5)就不能再站在女王的位置上了。這些廣場(chǎng)的旗幟將被設(shè)置為沒(méi)有站立的女王。