中原工学院贪心算法的应用_第1页
中原工学院贪心算法的应用_第2页
中原工学院贪心算法的应用_第3页
中原工学院贪心算法的应用_第4页
中原工学院贪心算法的应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三贪心算法的应用一 、 实 验 目 的1 掌 握 贪 心 算 法 的 基 本 概 念 和 两 个 基 本 要 素2 熟 练 掌 握 贪 心 算 法 解 决 问 题 的 基 本 步 骤 。3 学 会 利 用 贪 心 算 法 解 决 实 际 问 题 。二 、 实 验 内 容1.问 题 描 述 :题目三:程序存储问题设 有 n个 程 序 1,2,3, ,n要 存 放 在 长 度 为 L的 磁 带 上 。 程 序 i存 放 在 磁 带上 的 长 度 是 li,1 i n。 要 求 确 定 这 n个 程 序 在 磁 带 上 的 一 个 存 储 方 案 , 使 得 能够 在 磁 带 上 存 储 尽 可 能 多 的 程 序 。 输 入 数 据 中 , 第 一 行 是 2个 正 整 数 , 分 别 表 示程 序 文 件 个 数 和 磁 带 长 度 L。 接 下 来 的 1行 中 , 有 n个 正 整 数 , 表 示 程 序 存 放 在磁 带 上 的 长 度 。 输 出 为 最 多 可 以 存 储 的 程 序 个 数 。输 入 数 据 示 例6 502 3 13 8 80 20输 出 数 据5题目四:汽车加油问题一 辆 汽 车 加 满 油 后 ,可 行 使 n千 米 。 旅 途 中 有 若 干 个 加 油 站 。 若 要 使 沿 途 加油 次 数 最 少 ,设 计 一 个 有 效 算 法 , 对 于 给 定 的 n 和 k个 加 油 站 位 置 , 指 出 应 在 哪些 加 油 站 停 靠 加 油 才 能 使 加 油 次 数 最 少 。 输 入 数 据 中 , 第 一 行 有 2 个 正 整 数 , 分别 表 示 汽 车 加 满 油 后 可 行 驶 n千 米 , 且 旅 途 中 有 k个 加 油 站 。 接 下 来 的 1行 中 ,有 k+1个 整 数 , 表 示 第 k个 加 油 站 与 第 k-1个 加 油 站 之 间 的 距 离 。 第 0个 加 油 站表 示 出 发 地 , 汽 车 已 加 满 油 。 第 k+1个 加 油 站 表 示 目 的 地 。 输 出 为 最 少 的 加 油 次数 , 如 果 无 法 到 达 目 的 地 , 则 输 出 “ No Solution” 。实 验 提 示 :把 两 加 油 站 的 距 离 放 在 数 组 中 , a1k表 示 从 起 始 位 置 开 始 跑 , 经 过 k个加 油 站 , ai表 示 第 i 1个 加 油 站 到 第 i 个 加 油 站 的 距 离 。 汽 车 在 运 行 的 过 程中 如 果 能 跑 到 下 一 个 站 则 不 加 油 , 否 则 要 加 油 。输 入 数 据 示 例7 71 2 3 4 5 1 6 6输 出 数 据42.算 法 设 计 :题目三:程序存储问题n为 程 序 个 数 , L为 磁 带 的 长 度 , 定 义 数 组 lenn存 储 n个 程 序 的 长 度 ;调 用 库 函 数 sort( len, len+n) 对 程 序 的 长 度 从 小 到 大 排 序 ;函 数 Calculate( ) 计 算 磁 带 最 多 可 存 储 的 程 序 数 , 采 用 while循 环 依 次 对 排 序 后 的 程 序 长度 进 行 累 加 , 用 count计 算 程 序 个 数 , 用 sum计 算 程 序 累 加 长 度 ( 初 始 count=0, sum=0) :sum=sum+leni;若 sumaj+1) int temp = aj + 1;aj + 1 = aj;aj = temp;static void Max(int a, ref int max) int sum = 0;for (int i = 0; i 50) max = i;break;题目四:汽车加油问题对 于 这 个 问 题 我 们 有 以 下 几 种 情 况 : 设 加 油 次 数 为 k, 每 个 加 油 站 间 距 离 为ai; i=0, 1, 2, 3 n1始 点 到 终 点 的 距 离 小 于 , 则 加 油 次 数 k=0;2 始 点 到 终 点 的 距 离 大 于 N,A 加 油 站 间 的 距 离 相 等 , 即 i=aj=L=N, 则 加 油 次 数 最 少 k=n;B 加 油 站 间 的 距 离 相 等 , 即 i=aj=LN, 则 不 可 能 到 达 终 点 ;C 加 油 站 间 的 距 离 相 等 , 即 i=aj=Ln) Console.WriteLine(“No Solution“);for (int f = 0; f petrol) +count;petrol = n - distf;/还 有 油 到 下 一 站else petrol -= distf;Console.WriteLine(“*需 要 加 油 的 次 数 为*“);Console.WriteLine(count);三 .程 序 调 试 及 运 行 结 果 分 析题目三:程序存储问题运 行 结 果 :题目四:汽车加油问题运 行 结 果 :四 .实 验 总 结我 们 看 书 的 时 候 觉 得 这 种 算 法 特 别 难 , 学 习 后 才 知 道 它 的 思 想 比 较 简 单 , 顾 名 思 义 , 就是 每 一 步 的 时 候 都 很 贪 心 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论