实验3 动态规划(报告)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南大学 算法分析与设计实验报告
实验3 动态规划
一、实验目的
1)熟练掌握动态规划思想及教材中相关经典算法。
2)掌握用动态规划解题的基本步骤,能够用动态规划解决一些问题。
二、实验内容
1)选定实验题目,仔细阅读实验要求,设计好输入输出,按照动态规划方法的思想构思算法,选取合适的存储结构实现应用的操作。
2)设计的结果在Visual C++ 实验环境下实现并进行调试。
3)实验要有详细的测试记录,包括各种可能的测试数据。
三、实验问题
(1)找零钱问题
?问题描述
设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱,可以实用的各种面值的硬币个数不限。当只用硬币面值T[1],T[2],…,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=∞。
?编程任务
设计一个动态规划算法,对1≤j≤L,计算出所有的C( n,j )。算法中只允许实用一个长度为L的数组。用L和n作为变量来表示算法的计算时间复杂性
? 数据输入
由文件input.txt提供输入数据。文件的第1行中有1个正整数n
(n<=13),表示有n种硬币可选。接下来的一行是每种硬币的面值。由用户输入待找钱数j。
? 结果输出
程序运行结束时,将计算出的所需最少硬币个数输出到文件
output.txt中。
输入文件示例 输出文件示例
input.txt output.txt
3 3
12 5
9
复杂性:
需要另外的n?1的空间存放暂时结果,空间复杂行为:L?n?1???n?

1

相关文档
最新文档