合工大 程序設計藝術與方法 實驗二_第1頁
合工大 程序設計藝術與方法 實驗二_第2頁
合工大 程序設計藝術與方法 實驗二_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序設計藝術與方法課程實驗報告實驗名稱實驗二搜索算法的實現(xiàn)姓 名系院專業(yè)班 級學 號實驗日期5.29指導教師徐本柱成 績一、實驗目的和要求掌握寬度優(yōu)先搜索算法。掌握深度優(yōu)先搜索算法。二、實驗預習內容預習ICPC講義中的搜索的內容了解什么是深度優(yōu)先搜索和廣度優(yōu)先搜索。三、實驗項目摘要將書上的走迷宮代碼上機運行并檢驗結果,并注意體會搜索的思想。八皇后問題:在一個國際象棋棋盤上放八個皇后,使得任何兩個皇后之間不相互攻擊,求出所有的布棋方法。 上機運行并檢驗結果。騎士游歷問題:在國際棋盤上使一個騎士遍歷所有的格子一遍且僅一遍,對于任意給定的頂點,輸出一條符 合上述要求的路徑。倒水問題:給定2個沒有刻度

2、容器,對于任意給定的容積,求出如何只用兩個瓶裝出L升的水,如果可以,輸出步驟,如果不可以,請輸出No Solution。四、實驗結果與分析(源程序及相關說明)1.走迷宮代碼算法采用深度優(yōu)先搜索的思想,通過遞歸遍歷4個方向實現(xiàn)尋找迷宮的終點。h1,LL2 3椿按任意鍵繼續(xù).2.八皇后問題本算法使用回溯法,定義一個二維數(shù)組用于表示棋盤,遍歷一行中每一個位置,依次從第一行開始循環(huán),找到 下一行第一個可行的位置,依次向下,知道找到N個皇后位置,可能數(shù)加一,返回上一層,接著之后的點,知 道遍歷完行中每一個位置,結束循環(huán),此時得到所有可能的位置放置方法。思考:當N達到14以上是,此算法的時間將大大增加,我

3、考慮本算法可以在每一次計算之后,直接剔除之后各 行一些不可行的位置,以減少判斷的次數(shù),并且可以使用數(shù)組存儲當前算法執(zhí)行位置可行的點,這樣可以減少 循環(huán)的次數(shù),降低時間復雜度。#include stdafx.h#include#include#include#includeusing namespace std;#define N 16int n = 1; /皇后個數(shù)int sum = 0; /解個數(shù)int CheekerboardN; /皇后放置位置表示,數(shù)組位置為行號,元素為列號/判斷該位置是否可以放置int place(int x , int k)int i;for (i = 0; ix; i+)if (abs(x - i) = abs(k - Cheekerboardi) | k = Cheekerboardi) retu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論