




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章算法初步 1算法的基本思想 1 了解算法的含义 形成算法的初步印象 体会算法是解决问题的 机械 程序 并能在有限步内解决问题 2 能够用自然语言叙述算法 3 掌握正确的算法应满足的条件 4 会写出简单问题的算法 作为家里的一员 在平时分担一些力所能及的事是我们应尽的义务 你每天都帮家里做家务吗 你会烧开水吗 请写出你在家中烧开水的过程 1 往壶内注水 2 点火加热 3 观察 如果水开 则停止烧火 否则继续烧火 4 如果水未开 重复过程 3 直至水开 2 判断水是否烧开与是否继续烧火的过程是一个反馈与判断的过程 因此有必要不断重复过程 3 小结 1 其实大部分事情都是按照一定的程序执行的 因此要理清事情的每一步 事实上 我们完成任何事 都要有步骤 合理安排步骤 会达到事半功倍的效果 从我们数学的意义来讲 在解决某些问题时 需要设计出一系列可操作或可计算的步骤 通过实施这些步骤来解决问题 我们通常把这些步骤称为解决问题的一种算法 这种描述不是算法的定义 但反映了算法的基本思想 随着计算科学和信息技术的飞速发展 算法的思想已经渗透到社会的方方面面 在以前的学习中 虽然没有出现算法这个名词 但实际上在数学教学中已经渗透了大量的算法思想 如四则运算的过程 求解方程的步骤等等 完成这些工作都需要一系列程序化的步骤 这就是算法的思想 例1在电视台的某个娱乐节目中 要求参与者快速猜出物品的价格 主持人出示某件物品 参与者每次估算出一个价格 主持人只能回答高了 低了或者正确 在某次节目中 主持人出示了一台价值在1000元以内的随身听 并开始了竞猜 下面是主持人和参与者的一段对话 如果你是参与者 你接下来会怎么猜 800元 高了 400元 600元 低了 低了 参与者 主持人 实际上 可以把过程概括如下 例2在给定素数表的条件下 设计算法 将936分解成素因数的乘积 4000以内的素数表见课本附录1 解 算法步骤如下 1 判断936是否为素数 否 2 确定936的最小素因数 2 936 2 4683 判断468是否为素数 否 4 确定468的最小素因数 2 936 2 2 2345 判断234是否为素数 否 6 确定234的最小素因数 2 936 2 2 2 117 7 判断117是否为素数 否 8 确定117的最小素因数 3 936 2 2 2 3 399 判断39是否为素数 否 10 确定39的最小素因数 3 936 2 2 2 3 3 13判断13是否为素数 13是素数 所以分解结束 分解结果是 936 2 2 2 3 3 13 例3设计一个算法 求840与1764的最大公因数 1 先将840进行素因数分解 2 然后将1764进行素因数分解 3 确定他们的公共素因数2 3 7 4 确定公共素因数的指数 公共素因数2 3 7的指数分别为2 1 1 5 最大公约数为 解 算法步骤如下 例4 韩信点兵 问题 韩信是汉高祖刘邦手下的大将 他英勇善战 智谋超群 为建立汉朝立下了汗马功劳 据说他在点兵的时候 为了保住军事机密 不让敌人知道自己部队的实力 采用下述点兵的方法 先令士兵从1 3报数 结果最后一个士兵报2 再令士兵从1 5报数 结果最后一个士兵报3 又令士兵从1 7报数 结果最后一个士兵报4 这样 韩信很快就算出了自己部队的总人数 请设计一个算法 求出士兵至少有多少人 分析 从报数情况分析 总人数除以3余2 总人数除以5余3 总人数除以7余4 算法的第一步是将所有的除以3余2的正整数找出来 按从小到大排成一列 第二步是从第一步的数列中找出除以5余3的一列数 按从小到大排成一列 最后在满足前两个条件的第二步数列中再找出除以7余4的一列数 这列数中最小的数 即为我们所求的数 1 首先确定最小的满足除以3余2的正整数 2 解 具体算法步骤如下 5 在第4步得到的一列数中 找出满足除以7余4的最小数 53 这就是我们要求的数 4 然后依次加上15 得到8 23 38 53 显然这些数既满足除以3余2 又满足除以5余3 3 在上列数中确定最小的满足除以5余3的正整数 8 2 依次加3就得到所有除以3余2的正整数 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 3 算法要简洁 要清晰可读 不能繁杂 易程序化 算法不同于求解一个具体问题的方法 是这种方法的高度概括 一个好的算法有如下要求 1 写出的算法 必须能解决一类问题 如一元二次方程求根公式 并且能重复使用 2 算法过程要能一步一步执行 每步执行的操作 必须确切 不能含混不清 而且在有限步能得出结果 例5 写出以下问题的算法 一位商人有9枚银元 其中有1枚略轻的是假银元 你能用天平 不用砝码 将假银元找出来吗 解 1 把银元分成3组 每组3枚 2 先将两组分别放在天平的两边 如果天平不平衡 那边假银元就放在轻的那一组 如果天平左右平衡 则假银元就在末称的第3组里 3 取出含假银元的那一组 从中任取两枚银元放在天平的两边 如果左右不平衡 则轻的那一边就是假银元 如果天平两边平衡 则末称的那一枚就是假银元 算法是什么 算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤 或看成按要求设计好的 有限的 确切的计算序列 并且这样的步骤或序列能解决一类问题 现代意义上的 算法 通常是指可以用计算机来解决的某一类问题的程序或步骤 说明 1 算法实际上就是解决某一类问题的步骤和方法 在解决问题时形成的规律性的东西 按照算法描述的规则与步骤 一步一步地去做 最终便能解决问题 2 算法的基本思想就是我们分析问题时的想法 由于想法不同 思考的角度不同 着手点不一样 同一问题存在不同的算法 算法有优劣之分 3 从熟悉的问题出发 体会算法的程序化思想 学会用自然语言来描述算法 例6 在函数的应用部分 我们学习了用二分法求方程f x 0的近似解 如图所示 分析 二分法的基本思想是 将方程的有解区间分为两个小区间 然后判断解在哪个小区间 继续把有解的区间一分为二进行判断 如此周而复始 直到求出满足精度要求的近似解 其算法步骤如下 5 判断新的有解区间长度是否大于精确度 1 如果新的有解区间长度大于精确度 则在新的有解区间的基础上重复上述步骤 2 如果新的有解区间长度小于或等于精确度 则这个有解区间中的任意一个数均为方程的满足精度的近似解 3 计算f 0 5 0 625 6 计算f 0 75 0 015625 9 计算f 0 875 0 435546875 10 由于f 0 75 f 0 875 0 1 12 计算f 0 8125 0 196533203125 所以 区间 0 75 0 8125 中的任一数值 都可以作为方程的近似解 13 第一步 令f x x3 x2 1 因为f 0 f 1 0 所以设x1 0 x2 1 第三步 若f x1 f m 0 则令x1 m 否则 令x2 m 简化写法 第四步 判断 x1 x2 0 1是否成立 若是 则x1 x2之间的中间值为满足条件的近似解 若否 则返回第二步 算法的特征 有穷性 一个算法应包含有限的操作步骤而不应是无限的 确定性 算法中每一个步骤应当是确定的 而不应当是含糊的 模棱两可的 有效性 算法中每一个步骤应当能有效地执行 并得到确定的结果 输入 有零个或多个输入 输出 有一个或多个输出 一个人带三只狼和三只羚羊过河 只有一条船 船可以容纳一个人和两只动物 没有人在的时候 如果狼的数量不少于羚羊的数量 狼就会吃掉羚羊 请设计过河的算法 解 算法或步骤如下 s4人带两只狼返回 s2人自己返回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信业务个人年终总结
- 事业人员安全培训课件
- 课程顾问工作总结与计划
- 《给自己写信的人》课件
- 辽宁省2025年成人高校招生考试化学练习题库及答案
- 公司法培训课件
- 《相见欢》朱敦儒课件
- 2025果品种植订购合同
- 公司本质安全年培训课件
- 2025设备采购合同范本 项目管理合同范本
- 2025年食安员、食品安全总监、主要负责人考试题及答案
- 学堂在线 大数据系统基础 章节测试答案
- ICU常见体位护理
- 降本增效总结汇报
- 叉车产品数据表
- (完整版)文化体育馆建设项目可行性研究报告(完整版)
- 2023年骨科疾病诊疗指南(中华医学会骨科学分会)
- 中国昆曲课件
- 2025国开电大知识产权法形考作业1234答案
- 公司内部电子发票管理制度
- 市政道路工程新技术、新产品、新工艺、新材料应用
评论
0/150
提交评论