课件13张PPT。枚举算法(一)想一想:一天早上,数学课代表收好了数学练习本,他的同桌物理课代表收好了物理练习本,但是由于一些意外,两种练习本混在了一起。现在要把混在一起的74本练习本区分开,假如你是数学课代表,你会怎么做? 请讲出你的解决方案。列举检验C=C+1C=1C<=74打开一本作业是数学作业吗试一试:请用自己的话试着总结什么是枚举法。有一类问题可以采用盲目的搜索方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对所得结果逐一进行判断,过滤掉那些符合要求的,保留那些符合要求的,这种方法叫做枚举算法。练一练:学校体育馆买进100个篮球,只有“斯伯丁”和“摩腾”两个牌子,为运输方便将它们混在了一起运来。请你设计一个算法,帮助器材保管员统计共有多少个“斯伯丁”篮球。
要求:
请将你解决问题的流程图绘制出来。 开始C<=100J=0,C=1YNN输出J结束拿出一个篮球列举检验C=C+1研究范围枚举法的结构特点:
逐一列举和检验,用循环结构实现。
关键步骤:确定范围、列举、检验。
检验就是对某个给定的条件进行判
断,根据判断的不同结果执行不同操作,所以检验可用分支结构实现。若一个三位数X=100a+10b+c(a、b、c都是个位数),满足a3+b3+c3=X,则X称为水仙花数,请设计算法,找出所有的水仙花数。 列举检验研究范围100 <= X <= 999分别得到三位数的百位a、十位b、个位ca3+b3+c3=X开始结束X=100X<=999分别得到三位
数的百位a、
十位b、个位ca3+b3+c3=X输出XX=X+1a=int(X/100)
c=X % 10
b=(X-100*a-c)/10YYNN讲一讲:请你谈谈用枚举法时有哪些需要注意。枚举法的注意点:
1、选定合适的研究对象的范围。
2、找到判断正确解的条件。
3、逐一检验范围内的所有研究对象。找出下列问题的枚举三要素:1、学校开展财产维修登记,班级的财产管理员需要统计出教室中有多少把椅子是损坏的。
2、卫生委员统计全班身高超过180厘米的男生的人数。
3、英语老师要统计全班有多少同学期中考试成绩在80分以上的。作业: 1、一张单据上有一个5位数的编号147□8,十位数已经模糊不清,只知道该5位数是57或67的倍数,找出所有满足这些条件的5位数并输出。(基础)
2、一张单据上有一个5位数的编号14 □ □ 8,十位数和百位数已经模糊不清,只知道该5位数是57或67的倍数,找出所有满足这些条件的5位数并输出。(提高)