資源描述:
《八皇后問題總結(jié)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項(xiàng)目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個(gè)人素質(zhì)的培訓(xùn)計(jì)劃八皇后問題總結(jié) 實(shí)驗(yàn)報(bào)告 ——八皇后問題求解 學(xué)號:專業(yè)年級:姓名: 一、需求分析 1.問題描述 八皇后問題是一個(gè)以國際象棋為背景的問題:如何能夠在8×8的國際象棋棋盤上放置八個(gè)皇后,使得任何一個(gè)皇后都無法直接吃掉其他的皇后?為了達(dá)到此目的,任兩個(gè)皇后都不能處于同一條橫行、縱行或斜線上。八皇后問題可以推廣為更一般的n皇后擺放問題:這時(shí)棋盤的大小變?yōu)閚×n,而皇后個(gè)數(shù)也變成n。當(dāng)且僅當(dāng)n=1或n≥4時(shí)問題有解。
2、八皇后問題最早是由國際囯際象棋棋手馬克斯·貝瑟爾于1848年提出。諾克也是首先將問題推廣到更一般的n皇后擺放問題的人之一。 2.實(shí)現(xiàn)功能 八皇后問題實(shí)現(xiàn)了在棋盤上擺放八個(gè)皇后的功能,這八個(gè)皇后任意兩個(gè)皇后都不能處于同一條橫行、縱行或斜線上?! ?.測試數(shù)據(jù)目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確保其在這個(gè)行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項(xiàng)目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個(gè)人素質(zhì)的培訓(xùn)計(jì)劃 測試數(shù)據(jù)可以通過手工尋找三組滿足需
3、要的值,測試數(shù)組,其中M代表皇后所在的行,N代表皇后所在的列。例如,第一組測試數(shù)據(jù): 、、、、、、、;第二組測試數(shù)據(jù)、、、、、、、;第三組測試數(shù)據(jù):、、、、、、、。最后與編程求得的結(jié)果進(jìn)行比較。如果這三組數(shù)據(jù)在最后編程求得的結(jié)果中,說明程序的編寫基本沒有什么問題?! 《?、概要設(shè)計(jì) 在進(jìn)行概要設(shè)計(jì)的過程中,要清楚整個(gè)程序包含的功能模塊及模塊間的調(diào)用關(guān)系。對于八皇后問題,整個(gè)程序中應(yīng)該包括主函數(shù)模塊,擺放皇后的函數(shù)模塊,以及判斷皇后的位置是否擺放正確的判斷模塊。對于模塊間的關(guān)系,在運(yùn)行主函數(shù)的過程中會調(diào)用擺放皇后的函數(shù)模塊,在擺放
4、皇后的函數(shù)模塊中,又會調(diào)用判斷皇后位置是否擺放正確的判斷模塊?! ∪?、詳細(xì)設(shè)計(jì) 抽象數(shù)據(jù)類型中定義的各種操作算法實(shí)現(xiàn)對于求解八皇后問題的非遞歸算法,N-S圖如下: 對于八皇后問題求解的遞歸算法,N-S圖如下: 四、調(diào)試分析 1.程序在調(diào)式過程中出現(xiàn)的問題及解決方法目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確保其在這個(gè)行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項(xiàng)目的正常、順利開展,特制定安保從業(yè)人員的業(yè)務(wù)技能及個(gè)人素質(zhì)的培訓(xùn)計(jì)劃 由于對于C語言編程問題
5、掌握的并非十分熟練,因而在程序的調(diào)試過程中出現(xiàn)了一些問題。例如,在編寫位置沖突算法的過程中,在解決對角線問題上,沒有考慮對角線有兩條,只考慮了其中的一條,因而在編寫程序的過程中,沒有使用絕對值,導(dǎo)致得到的滿足要求的測試結(jié)果比實(shí)際的要多得多。 再如,為了能夠輸出比較整齊的測試結(jié)果,開始的時(shí)候只是輸出了皇后所在的列數(shù),沒有輸出皇后的行數(shù)。后來,在添加了行數(shù)坐標(biāo)后,兩個(gè)程序輸出了相同的比較整齊美觀的測試結(jié)果?! ?.算法的時(shí)間復(fù)雜度分析 在考慮算法的時(shí)間復(fù)雜度問題上,只需考慮每個(gè)函數(shù)的最大的時(shí)間復(fù)雜度即可,求得的最大的時(shí)間復(fù)雜度即為
6、整個(gè)程序的時(shí)間復(fù)雜度?! τ谶f歸程序的時(shí)間復(fù)雜度: O(????) 對于非遞歸程序的時(shí)間復(fù)雜度: O(????) 因而,對于遞歸和非遞歸程序兩個(gè)程序的時(shí)間復(fù)雜度,遞歸程序的時(shí)間復(fù)雜度要高?! ∥?、用戶手冊 由于在程序編寫的過程中,使用的環(huán)境為VisualC++,因而在使用的過程中,最好使用VisualC++,以免在程序運(yùn)行錯(cuò)誤。目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到安保行業(yè)的發(fā)展的巨大潛力,可提升其的專業(yè)水平,并確保其在這個(gè)行業(yè)的安全感。為了適應(yīng)公司新戰(zhàn)略的發(fā)展,保障停車場安保新項(xiàng)目的正常、順利開展,特制
7、定安保從業(yè)人員的業(yè)務(wù)技能及個(gè)人素質(zhì)的培訓(xùn)計(jì)劃 本程序的操作過程十分簡單,不需要操作者有C語言基礎(chǔ)?! ×?、測試結(jié)果 通過對于問題的編程求解,共得到了92種結(jié)果。從中任意選擇三組數(shù)據(jù)進(jìn)行測試。數(shù)組的第一個(gè)數(shù)值為皇后所在的行,第二個(gè)值為皇后所在的列?! 〉谝唤M測試數(shù)據(jù): 、、、、、、、用圖像形象表示為: 再如,第二組測試數(shù)據(jù): 、、、、、、、 第三組測試數(shù)據(jù): 、、、、、、、 由于空間有限,所以92種測試結(jié)果用數(shù)組的形式表示如下: 軟件工程上機(jī)報(bào)告 實(shí)驗(yàn)名稱:八皇后問題圖形界面求解姓名:郭恂學(xué)號:XX班級:11級數(shù)
8、學(xué)班 中國石油大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 一、試驗(yàn)程序截圖: 點(diǎn)擊顯示下一組解即可顯示下一組解: 同樣的,如果點(diǎn)擊上一組解即可顯示上一組解。 若在第1組解時(shí)點(diǎn)擊顯示上一組解會彈出報(bào)錯(cuò)提示框。目的-通過該培訓(xùn)員工可對保安行業(yè)有初步了解,并感受到