内容正文:
6.1分类加法计数原理与分步乘法计数原理(第3课时)
第6章计数原理
人教A版2019必修第三册
学习目标
1.进一步理解和掌握分类加法计数原理和分步乘法计数原理;
2.能应用两个计数原理解决实际问题.
两个计数原理的区别与联系
用两个计数原理解决问题时,要明确是需要分类还是需要分步,有时,可能既要分类又要分步
分类加法计数原理 分步乘法计数原理
相同点 用来计算完成一件事的方法种类
不同点 分类完成,类类相加 分步完成,步步相乘
每类方案中的每一种方法都能独立完成这件事 每步依次完成才算完成这件事(每步中的一种方法不能独立完成这件事)
注意点 类类独立,不重不漏 步步相依,步骤完整
例7 计算机编程人员在编写好程序以后需要对程序进行测试.程序员需要知道到底有多少条执行路(即程序从开始到结束的路线),以便知道需要提供多少个测试数据.一般地,一个程序模块由许多子模块组成,如图,这是一个具有许多执行路径的程序模块。
(1)这个程序模块有多少条执行路径?
(2)为了减少测试时间,程序员需要设法减少测试次数,你能帮助程序员设计一个测试方式,以减少测试次数吗?
开始
子模块1
18条执行路径
子模块3
28条执行路径
子模块2
45条执行路径
子模块5
43条执行路径
子模块4
38条执行路径
结束
A
例题讲解
开始
子模块1
18条执行路径
子模块3
28条执行路径
子模块2
45条执行路径
子模块5
43条执行路径
子模块4
38条执行路径
结束
A
分析:整个模块的任意一条执行路径都分两步完成:
第1步是从开始执行到A点;
第2步是从A点执行到结束.而第1步可由子模块1、子模块2、子模块3中任何一个来完成;第2步可由子模块4、子模块5中任何一个来完成.因此,分析一条指令在整个模块的执行路径需要用到两个计数原理.
例题讲解
开始
子模块1
18条执行路径
子模块3
28条执行路径
子模块2
45条执行路径
子模块5
43条执行路径
子模块4
38条执行路径
结束
A
解:(1)由分类加法计数原理,子模块1、子模块2、子模块3中的子路径条数共为18+45+28=91条;
子模块4、子模块5中的子路径条数共为38+43=81条;
由分步乘法计数原理,整个模块的执行路径条数共为
91 x 81 = 7371条
例题讲解
(2)在实际测试中,程序员总是把每一个子模块看成一个黑箱,即通过只考察
是否执行了正确的子模块的方式来测试整个模块.这样,他可以先分别单独测试
5个模块,以考察每个子模块的工作是否正常.总共需要的测试次数为18+45+28+38+43=172.
再测试各个模块之间的信息交流是否正常,需要测试的次数为:3 x 2 = 6.
如果每个子模块都正常工作,并且各个子模块之间的信息交流也正常,
那么整个程序模块就工作正常.
这样,测试整个模块的次数就变为 172+6=178(次)
例题讲解
例8 通常,我国民用汽车号牌的编码由两部分组成:第一部分为由汉字表示的省、自治区、直辖市简称和用英文字母表示的发牌机关代码,第二部分为由阿拉伯数字和英文字母组成的序号.
其中,序号的编码规则为:
(1)由10个阿拉伯数字和除O、I之外的24个英文字母组成;
(2)最多只能有2个英文字母.
如果某地级市发牌机关采用5位序号编码,那么这个发牌机关最多能发放多少张汽车号牌?
例题讲解
解:由号牌编号的组成可知,这个发牌机关所能发放的最多号牌数就是序号的个数.根据序号编码规则,5位序号可以分为三类:没有字母,有1个字母,有2个字母.
(1)当没有字母时,序号的每一位都是数字.确定一个序号可以分5个步骤,每一步都可以从10个数字中选1个,各有10种选法.根据分步乘法计数原理,这类号牌张数为:10 x 10 x 10 x 10 x 10 = 10000.
例题讲解
(2)当有1个字母时,这个字母可以分别在序号的第1位、第2位、第3位、第4位或第5位,这类序号可以分为五个子类.
当第1位是字母时,分5个步骤确定一个序号中的字母和数字:第1步,从24个字母中选1个放在第1位,有24种选法;第2~5步都是从10个数字中选1个放在相应的位置,各有10种选法.根据分步乘法计数原理,号牌张数为
24 x 10 x 10 x 10 x10 = 240000.
同样,其余四个子类号牌也各有240000张.
根据分类加法计数原理,这类号牌张数一共为
240000 + 240000 + 240000 + 240000 + 240000 = 1200000.
例题讲解
(3)当有2个字母时,根据这2个字母在序号中的位置,可以将这类序号分为十个子类:第1位和第2位,第1位和第3位,第1位和第4位,第1位和第5位;第2位和第3位,第2位和第4位,第2