




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法 一 算法的基本概念 1什么是算法算法 algorithm 一词源于算术 algorism 算术方法的原义是一个由已知推求未知的运算过程 后来 人们把它推广到一般 指算法是在有限步骤内求解某一问题所使用的一组定义明确的规则 甚至把把进行某一工作的方法和步骤也称为算法 例如 人们在计算过程中 先乘除 后加减 从内到外去括号等规则 都是按部就班必须遵守的算法 人类最早关于算法的记录存在于在两河流域发现的公元前两三千年的泥板书上 其中的一个典型例子就是计算利息何时能够够等于本金 算法早期发展中值得一提的另一个成果应归功于古希腊的欧几里得 他提出的计算最大公约数的辗转相除法 又称欧几里得算法 至今仍在使用 欧几里得是古代最有名望的学者之一 古希腊数学家 几何学的鼻祖 公元前300年左右 他所著 几何原本 13卷 是世界上最早公理化的数学著作 在 几何原本 中他充分总结了前人的生产经验和研究成果 从公理和公设出发 运用演绎法 经过逻辑推理和数学运算 创立了著名的欧几里得 简称欧氏几何 在 几何原本 中 欧几里得还阐述了关于求两个整数的最大公约数的过程 这就是著名的欧几里得算法 辗转相除法 其具体过程如下 设给定的两个正整数为m和n 求它们的最大公约数的步骤为 1 以m除以n 令所得的余数为r r必小于n 2 若r 0 则输出结果n 算法结束 否则 继续步骤 3 3 令m n n r 并返回步骤 1 继续进行 中国古代数学研究中也有许多有关算法的成果 用我国传统的开方术求高次方程的近似根 是算法上的一大成就 此外 在社会上得到广泛使用的珠算口诀就可以看做是典型的算法 它把复杂的计算 例如除法 描述为一系列按口诀执行的简单的算珠拨动操作 中国古代数学以算法为主要特征 其中最具代表性的就是 九章算术 九章算术 是战国 秦 汉时期数学发展的总结 就其数学成就来说 堪称是世界数学名著 其内容按类分章 以数学问题的形式出现 包括分数四则运算 开平方与开立方 包括二次方程数值解法 盈不足术 各种面积和体积公式 线性方程组解法 正负数运算的加减法则 勾股形解法 特别是勾股定理和求勾股数的方法 等 其中方程组解法和正负数加减法则在世界数学发展上是遥遥领先的 就其特点来说 它形成了一个以筹算为中心 与古希腊数学完全不同的独立体系 在11 14世纪约300年期间著名的数学家的著作中 如贾宪的 黄帝九章算法细草 刘益的 议古根源 秦九昭的 数书九章 李治的 测圆海镜 和 益古演段 杨辉的 详解九章算法 日用算法 和 杨辉算法 中 算法的特点得到了进一步的强化和发展 其中包括发展了一套求高次方程近似根的方法 2 算法的一般特征算法实际上是一种抽象的解题方法 它具有动态性 因此 算法的行为非常重要 作为一个算法 应具有以下四个特征 1 能行性 effectiveness 算法的能行性包括两个方面 一是算法中的每一个步骤必须是能实现的 例如 在算法中 不允许出现分母为零的情况 在实数范围内不能求一个负数的平方根等 二是算法执行的结果要能达到预期的目的 通常 针对实际问题设计的算法 人们总是希望能够得到满意的结果 2 确定性 definiteness 算法的确定性 是指算法中的每一个步骤都必须是有明确定义的 不允许有模棱两可的解释 也不允许有多义性 这一特征也反映了算法与数学公式的明显差异 在解决实际问题时 可能会出现这样的情况 针对某种特特殊问题 数学公式是正确的 但按此数学公式设计的计算过程可能会使计算机系统无所适从 这是因为 根据数学公式设计的计算过程只考虑了正常使用的情况 而当出现异常情况时 该计算过程就不能适应了 例如 某计算工具规定 大于100的数认为是比1大很多 而小于10的数不能认为是比1大很多 且在正常情况下出现的数或是大于100 或是小于10 但指令 输入一个x 若x比1大很多 则输出数字1 否则输出数字0 是不确定的 这是因为 在正常的输入情况下 这一指令的执行可以得到正确的结果 但在异常情况下 输入的x在10与100之间 这一指令执行的结果就不确定了 例如 某计算工具具有七位有效数字 如fortran中的单精度运算 在计算下列三个量a b 1 c 的和时 如果采用不同的运算顺序 就会得到不同的结果 即a b c 1 0a c十b 1 1而在数学上 a b c与a c b是完全等价的 这可知 算法和计算公式是有差别的 3 有穷性 finiteness 算法的有穷性是指算法必须能在有限的时间内执行完 即算法必须能在执行有限个步骤之后终止 数学中的无穷级数 在实际计算时只能取有限项 即计算无穷级数的过程只能是有穷的 因此 一个数的无穷级数的表示只是一种计算公式 而根据精度要求确定的计算过程才是有穷的算法 算法的有穷性还应包括合理的执行时间的含义 如果一个算法的执行时间是有穷的 但却需要执行千万年 显然这就失去了算法的实用价值 例如 克莱姆 cramer 规则是求解线性代数方程组的一种数学方法 但不能以此为算法 这是因为 虽然总可以根据克莱姆规则设计出一个计算过程用于计算所有可能出现的行列式 但这样的计算过程所需的时间实际上是不能容忍的 还例如 从理论上讲 总可以写出一个正确的弈棋程序 而且这也并不是一件很困难的工作 由于在一个棋盘上安排棋子的方式总是有限的 而且 根据一定的规则 在有限次移动棋子之后比赛一定结束 因此 弈棋程序可以考虑计算机每一次可能的移动 它的对手每一次可能的应答 以及计算机对这些移动的可能应答等等 直到每个可能的移动停止下来为止 此外 由于计算机可以知道每次移动的结果 因此总可以选择一种最好的移动方式 但即使如此 这种弈棋程序还是不可能执行 因为所有这些可能移动的次数太多 所要花费的时间不能容忍 由上述两个例子可以看出 虽然许多计算过程是有限的 但仍有可能无实用价值 4 算法必须拥有足够的情报一个算法是否有效 还取决于为算法的执行所提供的情报是否足够 例如 对于指令 如果小明是学生 则输出字母y 否则输出n 当算法执行过程中提供了小明一定不是学生的某种信息时 执行的结果将输出字母n 当提供的只是部分学生的名单 且小明恰在此名单之中 则执行的结果将输出字母y 但如果在提供的部分学生的名单中找不到小明的名字 则在执行该指令时无法确定小明是否是学生 通常 算法中的各种运算总是要施加到各个运算对象上 而这些运算对象又可能具有某种初始状态 这是算法执行的起点或是依据 因此 一个算法执行的结果总是与输入的初始数据有关 不同的输入将会有不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利水电工程环保技术应用试题及答案
- 研究方法设计与实施路径
- 工程经济的政策影响与建议试题及答案
- 水利水电工程对气候变化的适应策略试题及答案
- 管理技巧的2025年中级经济师试题及答案
- 病毒性心肌炎健康教育
- 行政管理经济法复习知识检验试题及答案
- 危险的小圆珠健康风险解析
- 2025年工程经济项目融资设计试题及答案
- 深海潜水旅游活动安全与责任告知合同
- 石膏自流平标准jc1023
- 2024至2030年全球及中国比特币和加密货币钱包细分市场深度研究报告
- 2023年海南省中考物理试题(解析版)
- DL-T+544-2012电力通信运行管理规程
- 食品安全日管控、周排查及月调度记录表
- 2024年浙江省绍兴市高二下学期期末调测数学试题及答案
- 计算机程序设计员国家职业技能标准
- 《人民调解法》讲解
- 新加坡员工合同范本
- 《无人机测绘技能训练模块》课件-模块9:无人机解析空中三角测量
- 江苏省镇江外国语学校2024届中考四模数学试题含解析
评论
0/150
提交评论