1.1.1算法的概念
发布时间:2021-06-06
发布时间:2021-06-06
问题:
“一群小兔一群小鸡,两 群合到一群里,要数腿共48 ,要数脑袋整17,多少小兔 多少小鸡?”
分析:(1) 代数方法(高斯消去法):设有x只小鸡,y只小兔,则有: x+y=17 2x+4y=48 所以解方程组 x=10; y=7
(2)算术方法: (48-17×2)÷2=7(只)相应的小鸡则是17-7=10只
这两种方法都可以解决“鸡兔同笼”的问 2 题
引言: 上述问题的解法2,简单直观,其中蕴含着深 刻的丰富的思想。 20 世纪最伟大的科学技术发明——计算机,而计算 机是对人脑的模拟,它强化了人的思维智能;没有 软件的支持,超级计算机只是一堆废铁而已;软件 的核心是——算法(程序) 算法不仅是数学及其应用的重要组成部分,也是计 算机科学的重要基础。算法作为一个名词,在中学 教科书中并没有出现过,我们在基础教育阶段还没 有接触算法概念。但是我们却从小学就开始接触算 法,熟悉许多问题的算法。3
阳新县高级中学
算 法 初 步
第一章
算法初步 统计
必修三
第二章
第三章
概率
§1.1.1概念:
算法的概念
算法通常指可以用来解决的某 一类问题的步骤或程序,这些步骤 或程序必须是明确的和有效的,而 且能够在有限步之内完成的。 一般来说,“用算法解决问题” 可以利用计算机帮助完成。5
说明:1简单地说,算法就是解决问题的程序或步骤。 可以一步步进行,每一步都能得到唯一的结果。 算法一般是刻板的,枯燥的,有时需要进行大量重复 的计算,显示了其“机械化”(也叫“傻瓜化”)的 特点。 实际上,处理任何问题都需要算法;象棋有象棋的 棋谱,电视有电视的说明书,邮寄物品有其相应的 手续···但不能说任何问题都可以用算法来解决 算法与具体问题的解法既有联系,又有区别,它 们之间是一般和特殊,抽象与具体的关系6
2
3
4
练习1:(1)下列不能看成算法的是(
C)
A.洗衣机的使用说明书 B.烹制油闷大虾的菜谱 C.李明不会做饭D.从阳新乘汽车到武汉,在武汉坐飞机到北京 (2)下列语句表达中是算法的有( ②1 ah 2
④ )个
①李明数学测试成绩是100分 ②利用公式 S= ,计算底为1,高为2的三角形的面积 ③3 x>2x+4 ④求M(1,2)与N(-3,-5)两点连线 所在的直线的方程,可先求MN的斜率,再利用点斜 式求得方程7
例1:对于一般的二元一次方程组 a1 x b1 y c1 (a1b2 a2b1 0) a2 x b2 y c2算法:第一步, ①×b2-②×b1,得 ( a1b2 a2b1 ) x b2 c1 b1c2 ③
试写出解该方 程组的算法 .
b2 c1 b1c2 第二步, 解③, x 得 ; a1b2 a2b1
b2 c1 b1c2 a1c2 a2 c1 第三步,将 x 代入
①得 y a1b2 a2 b1 a1b2 a2b1第四步,得到方程组的解.8
算法的特征:123
有穷性:
必须在有限步内完成结束
确定性:操作内容和顺序必须含义确切 有序性与有效性:
4 5
不唯一性 :它们有繁简,优劣之分.普遍性: 必须可以解决一类问题9
练习2:(1)下列关于算法的描述正确的是(
C)
A . 算法与求解一问题的方法相同 B. 算法只能解决一问题,不能重复使用 C. 算法过程要一步步执行,每步执行的操作必须确切
D. 有的算法执行完后,可能无结果
(2)下列关于算法的说法,正确有( ②③④ ) ①求解某一类问题的算法是唯一的;
②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有 歧义或模糊;④算法执行后一定产生确定的结果。
例2:写出一个求有限整数序列中最大值的算法。 算法:Step1,先假定这些正整数中的第一个数为临时最大值 Step2,将这些正整数中下一个数与临时最大值 比较,如果它大于此临时最大值,这时就 假定临时最大值是这个整数; Step3,如果还有其他正整数,重复第二步; Step4,一直到没有可比的数为止,这时最后的 临时最 大值就是这有限个正整数中的最大值。11
练习3: 写出求解一元二次方程 2 ax bx c 0(a 0) 的一个算法?解析: S1 计算△= b 4ac2
S2 如果△<0,原方程无解;如果△≥0,那么
b x1 2aS3 输出计算的结果
b x2 2a
x1 , x2
或无解信息。12
练习3: 在鸡兔同笼问题中,如果鸡和兔 的总数量为M,鸡兔腿的总数量 为 N,请写出鸡兔同笼问题的一 个算法?
练习3:鸡兔同笼问题的算法: S1 输入鸡和兔的总数量M; S2 输入鸡兔腿的总数量N; S3 设鸡和兔分别有x,y只.则 x y M 2 x 4 y N
S4 输出鸡的数量 4M N x 2
S5 输出兔的数量 N 2M y 2
算法的要求:(1)写出的算法,必须能解决一类问题, 并且能重复使用; (2)算法过程要能一步步执行,每一步执 行的操作,必须确切,不能含糊不清, 而且在有限步后能得出结果; (3)要使算法尽量简单,步骤尽量少。
两类算法问题: (1)数值性计算问题,如:解方程(或方程组), 解不等式(或不等式组),套用公式判断性的问题, 累加,累乘等一类问题的算法描述,可通过相应的数 学模型借助一般数学计算方法,分解成清晰的步骤, 使之条理化即可。 (2)非数值性计算问题,如:排序、查找、变量变 换、文字处理等需先建立过程模型,通过模型进行算 法设计与描述。
注: 描述算法有三种方式:自然语言,流程图(程序
框图),程序设计语言(本书指伪代码)16
例3: (1)设计一个算法,判断7是否为质数。(1)算法:S1,用2除7,得到余数1.因为余数不为0,所以2不能整除7. S2,用3除7,得到余数1.因为余数不为0,所以3不能整除7. S3,用4除7,得到余数3.因为余数不为0,所以4不能整除7. S4,用5除7,得到余数2.因为余数不为0,所以5不能整除7. S5,用6除7,得到余数1.因为余数不为0,所以6不能整除7. 因此,7是质数.17
(2)设计一个算法,判断35是否为质数。(2)算法:第一步,用2除35,得到余数1.因为余数不为0,所以2不能整除35. 第二步,用3除35,得到余数2.因为余数不为0,所以3不能整除35. 第三步,用4除35,得到余数3.因为余数不为0,所以4不能整除35.
第四步,用5除35,得到余数0.因为余数为0,所以5能整除35. 因此,35不是质数.
探究:算法: S1,给定大于2的整数n S2,令i=2 S3,用i除n,得到余数r,
你能写出“判断整数n(n>2)是否为质数”的 算法吗?
S4, 判断r是否为零 若为零,可得n不是质数,结束算法 否则,i的值增加1,仍用i来表示 S5,判断i是否大于n-1,若是,则n为质数, 若否,返回第三步
例4:写出用“二分法”求方程x2-2=0(x>0)算法:
的近似解的算法.
S1, 令f(x)=x2-2,给定精确度d S2, 确定区间[a,b],满足f(a)f(b)<0 a+b S3, 取区间中点 m= 2 S4, 若f(a)f(m)<0,则含零点的区间为[a,m],否则 含零点的区间为[m,b],将新得到的含零点的 区间仍记为[a,b] S5, 判断[a,b]的长度是否小于d或f(m)是否等于 零 ,若是,则m是方程的近似解,否则返回第三步20
当d=0.005时,按照以上的算法,可以得到下表a 1 1 1.25 1.375 1.375 1.40625 1.40625 1.4140625 1.4140625 2 1.5 1.5 1.5 1.4375 1.4375 1.421875 1.421875 1.41796875 b 1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.0039062521
|a-b|
上一篇:大学生公寓空调安装的调研报告
下一篇:公共机构节能条例