下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、問題:將八個(gè)皇后放入 8*8 的方格中,她們不相互攻擊(每個(gè)皇后都能攻擊同行 同列同一條斜線上的棋子)。分析:定義一個(gè)二維數(shù)組z99 (用行列的1-8,數(shù)組的每個(gè)元素的初值為1)表示 8*8 的棋盤, 8 個(gè)皇后互相不能攻擊,則每行只有一個(gè)皇后,一位數(shù)組 a9 , ai是第i行所在的列(例如a1=2,表示第1行上的皇后在第2歹U)。約束條 件:第 t 個(gè)皇后不與前1-t 個(gè)皇后同行同列同斜線。故放下第 t 個(gè)皇后要改變棋盤的布局,從此皇后的位置向下,與她同列同斜線上的元素都標(biāo)記為0。、第一個(gè)皇后可以放在第一行的(1-8)任意位置,故用for 循環(huán),保證第一個(gè)皇后可以從第一個(gè)位置循環(huán)放到第八個(gè)位
2、置,將第一行的皇后放好,根據(jù)約束條件改變棋盤布局,即改變z 的值,然后調(diào)用本身即 A2、放第二個(gè)皇后之前把棋盤的布局(z 的所有元素的值)保存到 x中。由于第一個(gè)皇后已放好,并影響后面其他的皇后,第二個(gè)皇后要根據(jù)z2i判斷哪里能放,若z2i=1 ,表示可以放下,由于可以放的位置不止一個(gè),故還要用 for 循環(huán)來控制,放下后根據(jù)約束條件改變z ,調(diào)用本身 A3、重復(fù)步驟2。若第t行全為0即ztN+1中所有元素都是0,返回上一次 調(diào)用。將此行(返回后的那行)上的皇后往后移動(dòng),在移動(dòng)之前要將布局更新,即讓 z=x ,移動(dòng)到滿足約束條件,若都不滿足則返回上一級(jí)調(diào)用,重復(fù)步驟3。若t=8,滿足放入棋盤的
3、約束條件,則放入,并輸出結(jié)果,返回上一級(jí)調(diào)用,繼續(xù)查找合適的位置。#include#define N 8void A(int t);int zN+1N+1;int w=1;/ 只在結(jié)果輸出時(shí)用到,控制是否輸出“-”int aN+1=0;/定義數(shù)組a并初始全部元素賦值為0void main()int i,j;for(i=1;i=N;i+)for(j=1;j=N;j+)zij=1;/ 對二維數(shù)組初始化printf( 八皇后問題的解:n);A(1);/ 從第 1 個(gè)皇后開始 void A(int t)int i,y,t1,t2,d1,d2;int xN+1N+1;/ 用來存放 t 皇后放入棋盤之前,
4、棋盤的狀態(tài)if(t=1)for(d1=1;d1=N;d1+)for(d2=1;d2=N;d2+)xd1d2=zd1d2;/讓二維數(shù)組x等于t皇后放入前棋盤狀態(tài) zfor(i=1;i=N;i+)for(d1=1;d1=N;d1+)for(d2=1;d2=N;d2+)zd1d2=xd1d2;/將未放t時(shí)的初始狀態(tài)給z口口,每次返回時(shí)或調(diào)度進(jìn)入 時(shí)執(zhí)行at=i;t1=i;t2=i;for(y=t+1;y=N;y+)/改變棋盤布局zyi=0;t 所在列if(t11)zy-t2=0;/ 向左下延伸的的斜線A(t+1);elseif(t=N)for(d1=1;d1=N;d1+)for(d2=1;d2=N;d2+)xd1d2=zd1d2;/讓二維數(shù)組x等于t皇后放入前棋盤狀態(tài)z口口for(i=1;i=N;i+)for(d1=1;d1=N;d1+)for(d2=1;d2=N;d2+)zd1d2=xd1d2;/將未放t時(shí)的初始狀態(tài)給z口口,每次返回時(shí)或調(diào)度進(jìn)入 時(shí)執(zhí)行 if(zti)/ 判斷 zti 是否能夠放下 tat=i;t1=i;t2=i;if(t=N)如果最后一個(gè)也放入了則輸出結(jié)果printf(第d種解:n,w+);for(d1=1;d1”,d1,d1,ad1);printf(n);else/zti 為 0if(i=N)/t 行的所有元素為 0return;continue;繼續(xù) for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫擴(kuò)大補(bǔ)充協(xié)議書
- 第9課-2023-2024學(xué)年初中信息技術(shù)七年級(jí)上冊(人教版)-說課稿-制作電子表格
- 變更扶養(yǎng)協(xié)議書
- 北京房屋租賃合同2008
- 防火應(yīng)急疏散演練幼兒園
- 天津市南開區(qū)2024-2025學(xué)年高一上學(xué)期11月期中考試語文試題(含答案)
- 遼寧省錦州市某校2024-2025學(xué)年高二上學(xué)期期中質(zhì)量檢測英語試卷(無答案)
- 糖尿病的演講
- 《纖維繩索彎曲疲勞試驗(yàn)方法》
- 飼料級(jí)磷酸鹽相關(guān)項(xiàng)目投資計(jì)劃書范本
- 大國崛起:中國對外貿(mào)易概論學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 企業(yè)內(nèi)控手冊之股權(quán)投資管理流程手冊
- 2023同等學(xué)力申碩統(tǒng)考英語考試真題
- BIM技術(shù)大賽考試題庫(600題)
- 2023年大學(xué)試題(法學(xué))-著作權(quán)法考試參考題庫(含答案)
- Module9Unit2Ifeelhappy.(學(xué)習(xí)任務(wù)單)外研版英語五年級(jí)上冊
- 大一高等數(shù)學(xué)期末考試題選編及解析
- 綠博園站初步設(shè)計(jì)說明
- 中控ECS-700學(xué)習(xí)課件
- 武漢理工大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)試題及答案
- 山地光伏施工組織設(shè)計(jì)
評論
0/150
提交評論