文档介绍:穷举法
2021/3/30
1
一、引入
实例一:输入绳子的长度n,将该绳子分成三段,每段的长度为正整数,输出由该三段绳子组成的三角形个数。
穷举法
算法分析:没有公式直接求出三角形的个数,所以程序只能采用穷举法,一一验证范围内的数是否能构成三角形,若是则累计。
2021/3/30
2
精品资料
2021/3/30
3
你怎么称呼老师?
如果老师最后没有总结一节课的重点的难点,你是否会认为老师的教学方法需要改进?
你所经历的课堂,是讲座式还是讨论式?
教师的教鞭
“不怕太阳晒,也不怕那风雨狂,只怕先生骂我笨,没有学问无颜见爹娘 ……”
“太阳当空照,花儿对我笑,小鸟说早早早……”
2021/3/30
4
一、引入
s:=0;
for a:=1 to n-2 do
for b:=a to n-2 do
for c:=b to n-2 do
if (a+b>c) and (b+c>a) and (c+a>b) and (a+b+c=n)
then s:=s+1;
穷举法
2021/3/30
5
s:=0;
for a:=1 to n-2 do
for b:=a to n-2 do
begin
c:=n-a-b;
if (a+b>c) and (b+c>a) and (c+a>b) and (c>=b)
then s:=s+1;
end;
一、引入
2021/3/30
6
二、穷举法的基本概念
穷举法
穷举方法是基于计算机特点而进行解题的思维方法。一般是在一时找不出解决问题的更好途径(即从数学上找不到求解的公式或规则)时,可以根据问题中的的部分条件(约束条件)将所有可能解的情况列举出来,然后通过一 一验证是否符合整个问题的求解要求,而得到问题的解。这样解决问题的方法我们称之为穷举算法。穷举算法特点是算法简单,但运行时所花费的时间量大。因此,我们在用穷举方法解决问题时,应尽可能将明显的不符合条件的情况排除在外,以尽快取得问题的解。
2021/3/30
7
三、穷举算法模式
穷举法
1、问题解的可能搜索的范围:
用循环或循环嵌套结构实现
2、写出符合问题解的条件。
3、能使程序优化的语句,以便缩小搜索范
围,减少程序运行时间。
2021/3/30
8
四、穷举法应用
穷举法
穷举法应用很多,比如一些密码破译软件通常就是用的穷举算法。如在QQ上,OicqPassOver这个工具穷举你的口令,它根据机器性能最高可以每秒测试20000个口令,如果口令简单,一分钟内,密码就会遭到破译。下面我们来以三个例子说明穷举法的基本应用。
2021/3/30
9
实例二:有形如:ax3+bx2+cx+d=0  这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d  均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。
提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*(x2)<0,则在(x1,x2)之间一定有一个 根。
样例
输入:1   -5   -4   20
输出:-     
四、穷举法应用
2021/3/30
10