内容正文:
3.2 算法及其描述
年级:高二年级 主讲人:胡可汗
运用计算机解决问题的过程:
1、分析问题
2、设计算法
3、编写程序
4、调试运行程序
算法
算法的描述
复习旧知
算法的特征
3.2 算法及其描述
年级:高二年级 主讲人:胡可汗
问题导入
请问小明同学乘坐地铁从A站到B站的最佳路线是?
生活常识:站点最少、换乘最少
一、算法的概念
广义来说,算法指的是完成某项工作的方法和步骤。
一、算法的概念
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。
在计算机领域中,算法是计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
简单地说,算法就是解决问题的具体方法和步骤。
解决问题的过程,就是实现算法的过程。
二、算法的特征
新年快到了,老师打算花50块钱购买一些笔记本,写上祝福语赠送给边远山区农村教学点的小朋友,鼓励他们好好学习、天天向上。老师请班长小明帮忙,小明决定买三种单价分别为6元、5元、4元的笔记本,请问可以有多少种购买方案?
x:购买单价为6元的笔记本数量
y:购买单价为5元的笔记本数量
z:购买单价为4元的笔记本数量
求6x+5y+4z=50有多少组
正整数
解?
二、算法的特征
6x+5y+4z=50有多少组正整数解?
想一想
1
这个问题可以用三元一次方程式解决吗?为什么?
2
有什么办法可以求解这个问题呢?
3
x、y、z的取值范围是多少?
1<=x<=6
1<=y<=8
1<=z<=9
不能
枚举
二、算法的特征
6x+5y+4z=50有多少组正整数解?
1<=x<=6
1<=y<=8
1<=z<=9
既要保证所有组合都试过,又要保证避免重复代入某些组合
6× +5× +4× =50
x
y
z
t (正整数解的个数)
1~9
1
1
1
2~8
1~9
2~6
2~8
1~9
当等式成立时,t=t+1
二、算法的特征
求方程6x+5y+4z=50的正整数解的个数t,则解决问题的算法步骤如下:
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则解的个数加1( t=t+1) ,并输出这个解(输出x,y,z的值);
z=z+1;
如果z<=9,则转步骤⑤,否则继续⑧;
y=y+1;
如果y<=8,则转步骤④,否则继续⑩;
x=x+1;
如果x<=6,则转步骤③,否则继续 ⑿;
结束;
二、算法的特征
1
2
3
4
5
有穷性
确定性
数据输入
可行性
数据输出
一个算法所包含的计算步骤是有限的
算法执行的每一个步骤必须有确切的定义,不能有模棱两可的情况
一个算法有零个或多个数据输入
一个算法有一个或多个数据输出,没有输出的算法是没有意义的
每个步骤都可以在有限时间内完成
二、算法的特征
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则解的个数加1( t=t+1) ,并输出这个解(输出x,y,z的值);
z=z+1;
如果z<=9,则转步骤⑤,否则继续⑧;
y=y+1;
如果y<=8,则转步骤④,否则继续⑩;
x=x+1;
如果x<=6,则转步骤③,否则继续 ⑿;
结束;
6x+5y+4z=50有多少组正整数解?
有穷性
二、算法的特征
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则解的个数加1( t=t+1) ,并输出这个解(输出x,y,z的值);
z=z+1;
如果z<=9,则转步骤⑤,否则继续⑧;
y=y+1;
如果y<=8,则转步骤④,否则继续⑩;
x=x+1;
如果x<=6,则转步骤③,否则继续 ⑿;
结束;
6x+5y+4z=50有多少组正整数解?
确定性
二、算法的特征
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则解的个数加1( t=t+1) ,并输出这个解(输出x,y,z的值);
z=z+1;
如果z<=9,则转步骤⑤,否则继续⑧;
y=y+1;
如果y<=8,则转步骤④,否则继续⑩;
x=x+1;
如果x<=6,则转步骤③,否则继续 ⑿;
结束;
6x+5y+4z=50有多少组正整数解?
没有输入,但有多个输出:t、x、y、z
二、算法的特征
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则解的个数加1( t=t+1) ,并输出这个解(输出x,y,z的值);
z=z+1;
如果z<=9,则转步骤⑤,否则继续⑧;
y=y+