没有合适的资源?快使用搜索试试~ 我知道了~
9181040G0818-黄海浪-算法第六章实验报告1
需积分: 0 0 下载量 28 浏览量
2022-08-08
19:57:04
上传
评论
收藏 405KB DOCX 举报
温馨提示
试读
13页
南京理工大学计算机科学与工程学院算法设计与分析 报告班 级 9181069502 学生姓名 黄海浪 学 号 9181040G0818 起止时间 2020.05.
资源详情
资源评论
资源推荐
1
南京理工大学计算机科学与工程学院
算法设计与分析 报告
班 级 9181069502
学生姓名 黄海浪
学 号 9181040G0818
起止时间 2020.05.04-2020.05.05
教 师 孙廷凯
2
目录
一. 问题描述与实验要求 .................................................................................................................3
二. 符号说明与语法约定 .................................................................................................................3
三. 算法自然语言描述............................................................................................................................3
四. 算法伪代码描述 ................................................................................................................................3
五. 算法的代码及结果............................................................................................................................4
代码: .................................................................................................................................................4
结果: .................................................................................................................................................8
3
一.问题描述与实验要求
给你两瓶装满了油的油瓶 A 和 B,其容量分别是 5 升和 3 升,再给你一个容
量很大(至少 8 升)的空油瓶 C,三个油瓶均没有刻度。现在想量出 x 升的油
(x=1,2,3,4,5,6,7,8),该怎么倒油?试用回溯策略求解,给出一个合适的倒
油操作序列。
二.符号说明与语法约定
为了不失一般性,代码能够对给定的三个瓶子容量上限(A、B、C)和一个
倒出的油目标值 target,以及初始油量 A0,B0,C0,即可求得结果。
三.算法自然语言描述
回溯法求解
对于每个状态(三个瓶子目前油量)均有 6 种倒法,为了得到回溯的条件,我
们记录之前已经存在的所有状态,那么回溯的条件是之前存在当前的状态或者
目前的状态中存在一个油量为 target 的瓶子。
对于每个状态我们均用 6 种倒法进行操作,直到和之前状态相同或者得到结
果。
四. 算法伪代码描述
输入:空
输出:得到目标油量的步骤
主要算法
getAns(index) //index 为目前的状态为第 index 步
1. for i<- 1 to 6
2. step[index][3]=i; //step[i][j]代表第 i 个状态
j=0/1/2 代表瓶子油量 j=4 代表下一步的操作
3. move(index+1) //进行倒油
4. if index+1 状态存在 target then
5. ++cnt; //cnt 为目前求得的有多少结果
6. 打印输出并记录 //记录是为了找到最少步骤的解
7. else if 之前不存在当前状态 then
8. getAns(index+1) //进行下一步 否则回溯
9. end if
10. end for
剩余12页未读,继续阅读
FloritaScarlett
- 粉丝: 20
- 资源: 308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0