实验三 贪心算法的应用
一、实验目的
1.掌握贪心算法的基本概念和两个基本要素
2.熟练掌握贪心算法解决问题的基本步骤。
3.学会利用贪心算法解决实际问题。
二、实验内容
1.问题描述:
题目一:硬币找钱问题
设有6种不同面值的硬币,各硬币的面值分别为5分、1角、2角、5角、1元和2元。现在要用这些面值的硬币来购物和找钱。购物时可以使用的各种面值的硬币个数存于数组Coins[1:6]中,假设商店里各面值的硬币有足够多。对于给定的付款金额,计算使用硬币个数最少的交易方案。
题目二:会场安排问题
假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法来进行安排。试编程实现对于给定的k个待安排活动,计算使用最少会场的时间表。
题目三:汽车加油问题
一辆汽车加满油后,可行使n千米。旅途中有若干个加油站。若要使沿途加油次数最少,设计一个有效算法,对于给定的n和k个加油站位置,指出应在哪些加油站停靠加油才能使加油次数最少。
实验提示:
把两加油站的距离放在数组中,a[1..k]表示从起始位置开始跑,经过k个加油站,a[i]表示第i-1个加油站到第i个加油站的距离。汽车在运行的过程中如果能跑到下一个站则不加油,否则要加油。
题目四:取数游戏
有两个人轮流取2n个数中的n个数,所取数之和大者为胜。请编写程序,模拟取数过程,让先取数着胜。(取数规则:两端数据)
题目五:高精正整数问题
键盘输入一个高精度的正整数N,去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程确定给定的N和S,寻求一种方案使得剩下的数字组成的新数最小。
2.数据输入:个人设定,由键盘输入。
3.要求:
1)上述题目任选一做。上机前,完成程序代码的编写
2)独立完成实验及实验报告
三、实验步骤
1.理解算法思想和问题要求;
2.编程实现题目要求;
3.上机输入和调试自己所编的程序;
4.验证分析实验结果;
5.整理出实验报告。
附:实验报告的主要内容
一.实验目的
二.问题描述
三.算法设计
包含:数据结构与核心算法的设计描述、函数调用及主函数设计、主要算法流程图等
四.程序调试及运行结果分析
五.实验总结
附录:程序清单 (程序过长,可附主要部分)
我已经更新了汇率,人民币共10169.70。
这种通信包含的信息是保密的,也可以享有特权。它是为接收者独家使用。如果你没有预期的收件人,请从您的系统删除,不以任何方式来使用,复制或公开,也不依赖于它的行为的信息,并通知发件人,然后立即销毁它的任何副本。请注意,Ecapay监控电子邮件发送或接收。