




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上傳教士過(guò)河問(wèn)題實(shí)驗(yàn)報(bào)告計(jì)研-12 15 宋玲玲1實(shí)驗(yàn)?zāi)康模?)了解知識(shí)表示相關(guān)技術(shù);(2)掌握問(wèn)題規(guī)約法或者狀態(tài)空間法的分析方法。2實(shí)驗(yàn)內(nèi)容從前有一條河,河的左岸有m個(gè)傳教士、m個(gè)野人和一艘最多可乘n人的小船。約定左岸,右岸和船上或者沒(méi)有傳教士,或者野人數(shù)量少于傳教士,否則野人會(huì)把傳教士吃掉。搜索一條可使所有的野人和傳教士安全渡到右岸的方案。3實(shí)驗(yàn)原理及方法假設(shè)開始時(shí)傳教士、野人和船都在右岸,用數(shù)組(a,b,c)分別表示右岸傳教士個(gè)數(shù)、右岸野人個(gè)數(shù)、船的位置,則可分為三種情況討論:A、n>m/2。此種情況下,先把所有的野人度過(guò)去,每次返回一個(gè)野人,當(dāng)出現(xiàn)(m,0
2、,0)情況時(shí),返回m-n個(gè)野人(若m=n,返回1個(gè)野人)。然后渡n個(gè)傳教士,此時(shí)野人=傳教士,然后返回一個(gè)野人和傳教士,再開始最大限度的渡傳教士,每次返回一個(gè)野人,最終直到a=b=c=0;B、n<=3&&n<=m/2 | n=1,顯然此時(shí)無(wú)解;C、n>=4&&n<=m/2,此時(shí)只能每次傳n/2個(gè)傳教士和野人,每次返回一個(gè)野人和傳教士,直到最終結(jié)果。程序流程圖如下:4、源程序清單:本程序用C+語(yǔ)言編寫。#include "iostream"using namespace std;bool flag = false;/標(biāo)記
3、是否有解bool af = false;/標(biāo)記a是否為0bool bf = false;/當(dāng)b變?yōu)?后賦值為true;bool ef = false;/當(dāng)a=b后賦值為truebool f = false;/判斷n是否大于m/2int m;/傳教士野人的個(gè)數(shù)int n;/船一次能裝載的人數(shù)void mc(int a,int b,int c);int main()cout<<"傳教士與野人過(guò)河問(wèn)題。n假設(shè)最初時(shí)傳教士與野人在河的右岸。n"cout<<"請(qǐng)輸入傳教士野人的個(gè)數(shù):n"cin>>m;cout<<&q
4、uot;請(qǐng)輸入船一次能裝載的人數(shù): n"cin>>n;cout<<"右岸傳教士人數(shù)t"<<"右岸野人個(gè)數(shù)t"<<"船的位置(1.右岸 0左岸)"<<endl;if(m<=3 && n<=m/2) | n=1)/此種情況無(wú)解cout<<"No solution!n"system("pause");return 0;if(n > m/2)f = true;mc(m,m,1);if(fl
5、ag = true)cout<<"Success!n"elsecout<<"No solution!n"system("pause");return 0; void mc(int a,int b,int c)if(flag=true) return;if(c = 1)cout<<"t"<<a<<"tt"<<b<<"tt"<<c<<"tn"if(f=t
6、rue)/如果n>m/2if(bf!=true)/b未達(dá)到過(guò)0if(a+b<=n)/如果a+b<=n,完全渡過(guò)mc(0,0,1-c);/遞歸elsefor(int j = n;j >= 0;j-)if(b >= j)mc(a,b-j,1-c);/遞歸if(flag=true) return;else if(ef!=true&& af=false)for(int i = n;i>=0;i-)if(a>=i)mc(a-i,b,1-c);/遞歸if(flag=true) return;if(ef = true && af=fa
7、lse)if(a>=n)mc(a-n,b,1-c);/遞歸else if(a+b<n)mc(0,0,1-c);elsemc(0,b-(n-a),1-c);if(af=true)if(b>=n)mc(a,b-n,1-c);/遞歸elsemc(a,0,1-c);else mc(a-n/2,b-n/2,1-c); /遞歸if(c = 0)cout<<"t"<<a<<"tt"<<b<<"tt"<<c<<"tn"if(a =
8、 b && b = c && a = 0)flag = true;return;if(f=true)/如果n>m/2if(b=0)bf = true;if(m <= n)mc(a,b+1,1-c);/遞歸elsemc(a,b+m-n,1-c);if(a=b)ef = true;mc(a+1,b+1,1-c);/遞歸if(a = 0)af = true;mc(a,b+1,1-c);/遞歸while(bf!=true)mc(a,b+1,1-c);/遞歸else/k<=n/2&&k>3mc(a+1,b+1,1-c);/遞歸 5、實(shí)驗(yàn)結(jié)果及分析。程序?qū)嶒?yàn)結(jié)果如下圖。當(dāng)然,傳教士與野人個(gè)數(shù)為3,船一次能載兩個(gè)人,這是最經(jīng)典的例子。本程序也可輸入其
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年現(xiàn)代語(yǔ)文教學(xué)與應(yīng)用知識(shí)考試試題及答案
- 2025年心理評(píng)估與測(cè)量技術(shù)考試卷及答案
- 高紅移類星體探測(cè)-洞察及研究
- 2025年數(shù)據(jù)隱私保護(hù)與合規(guī)管理考核試卷及答案
- 2025年社會(huì)工作實(shí)務(wù)基礎(chǔ)考核試題及答案
- 2025年軟件工程專業(yè)實(shí)踐考試卷及答案
- 2025年生活方式與健康管理知識(shí)考試試題及答案
- 2025年全國(guó)大學(xué)英語(yǔ)四級(jí)考試試卷及答案
- 2025年青少年心理健康教育的重要考試試卷及答案
- 2025年臨床醫(yī)學(xué)執(zhí)業(yè)考試試卷及答案
- 連帶責(zé)任擔(dān)保借條(四篇)
- 2023年計(jì)算機(jī)圖形學(xué)試題級(jí)考試A卷
- GB/T 42104-2022游樂(lè)園安全安全管理體系
- 八年級(jí)下冊(cè)人教版英語(yǔ)單項(xiàng)選擇(50題)練習(xí)題含答案含答案
- 河北省大眾滑雪等級(jí)標(biāo)準(zhǔn)(試行)
- GB/T 3863-2008工業(yè)氧
- GB/T 31125-2014膠粘帶初粘性試驗(yàn)方法環(huán)形法
- 班主任班級(jí)管理(課堂)課件
- 學(xué)院輔導(dǎo)答疑情況記錄表
- 31個(gè)級(jí)地區(qū)國(guó)家重點(diǎn)監(jiān)控企業(yè)自行監(jiān)測(cè)信息公開平臺(tái)及污染源監(jiān)督性監(jiān)測(cè)信息公開網(wǎng)址
- 2022年江西省投資集團(tuán)有限公司校園招聘筆試模擬試題及答案解析
評(píng)論
0/150
提交評(píng)論