内容正文:
6.1 分类加法计数原理与
分步乘法计数原理 (3)
第六章 计数原理
1
复习回顾
分类加法计数原理 分步乘法计数原理
相同点
不同点
注意点
公式
用来计算完成一件事的方法种数
每类方案中的每一种方法都能独立完成这件事,只须一种方法就可完成这件事.
只有各个步骤都完成了,才能完成这件事(每步中的每一种方法不能独立完成这件事).
相加
相乘
类类独立
步步相依
不重不漏
缺一不可
分类、
分步、
分类计数原理与分步计数原理的区别与联系:
N=m1+m2+…+mn
N=m1×m2×…×mn
例题分析
例8 通计算机编程人员在编写好程序以后需要对程序进行测试. 程序员需要知道到底有多少条执行路径(程序从开始到结束的路线), 以便知道需要提供多少个测试数据. 一般地,一个程序模块由许多子模块组成.
如图是一个具有许多执行路径的程序模块, 它有多少条执行路径?
另外 , 为了减少测试时间 , 程序员需要设法减少测试次数, 你能帮助程序员设计一个测试方法, 以减少测试次数吗?
分析:
整个模块的任意一条执行路径都分两步完成:
第1步是从开始执行到A点 ;
第2步是从A点执行到结束.
第1步可由子模块1、子模块2、子模块3中任何一个来完成;
第2步可由子模块4、子模块5中任何一个完成.
因此, 分析一条指令在整个模块的执行路径需要用到两个计数原理.
解:由分类加法计数原理,子模块1、子模块2、子模块3中的子路径条数共为
18+45+28=91
子模块4、子模块5中的子路径条数共
38+43=81
又由分步乘法计数原理,整个模块的执行路径条数共为
91×81=7371
例题分析
在实际测试中,程序员总是把每一个子模块看成一个黑箱,即通过只考察是否执行了正确的子模块的方式来测试整个模块,这样,他可以先分别单独测试5个模块,以考察每个子模块的工作是否正常,总共需要的测试次数为:18+45+28+38+43=172.
再测试各个模块之间的信息交流是否正常,只需要测试程序第1步中的各个子模块和第2步中的各个子模块之间的信息交流是否正常,需要的测试次数为:3×2=6.
如果每个子模块都工作正常,并且各个子模块之间的信息交流也正常,那么整个程序模块就工作正常,这样,测试整个模块的次数就变为:172+6=178.
显然,178与7371的差距是非常大的.
例题分析
例8 通常,我国民用汽车号牌的编号由两部分组成:第一部分为用汉字表示的省、自治区、直辖市简称和用英文字母表示的发牌机关代号,第二部分为由阿拉伯数字和英文字母组成的序号,如下图所示.
0
冀 A JR005
省、自治区、直辖市简称
发牌机关代号
序号
其中,序号的编码规则为:
(1) 由 10 个阿拉伯数字和除 O,I 外的 24 个英文字母组成;
(2) 最多只能有 2 个英文字母.
如果某地级市发牌机关采用 5 位序号编码,那么这个发牌机关最多能发放多少张汽车号牌?
分析:由号牌编号的组成可知,序号的个数决定了这个发牌机关所能发放的最多号牌数. 按序号编码规则可知,每个序号中的数字、字母都是可重复的,并且可将序号分为三类:没有字母,有1个字母,有2个字母.
例题分析
解: 由号牌编号的组成可知,这个发牌机关所能发放的最多号牌数就是序号的个数. 根据序号编码规则,5位序号可以分为三类:
没有字母,有1个字母,有2个字母.
(1) 第1类:当序号中没有字母时,序号的每一位都是数字,
确定一个序号可以分5个步骤,每一步都可以从10个数字中选1个,各有10种选法,根据分步乘法计数原理,这类号牌张数为
10×10×10×10×10=100000
例题分析
(2) 第2类:当序号中有1个字母时,这个字母可以分别在序号的第1位、第2位、第3位、第4位或第5位,这类序号可以分为五个子类.
当第1位是字母时, 分5个步骤确定一个序号中的字母和数字:
第1步,从24个字母中选1个放在第1位,有24种选法;
第2~5步都是从10个数字中选1个放在相应的位置,各有10种选法,
根据分步乘法计数原理,号牌张数为
24×10×10×10×10=240000
同样,其余四个子类号牌也各有240000张.
根据分类加法计数原理,这类号牌张数一共为 240000+240000+240000+240000+240000=1200000
5×24×104=1200000
例题分析
(3) 第3类:当序号中有2个字母时,根据这2个字母在序号中的位置,可以将这类序号分为十个子类:第1位和第2位,第1位和第3位,第1位和第4位,第1位和第5位,第2位和第3位,第2位和第4位,第2位和第5位,第3位和第4位,第3位和第5位,第4位和第5位.
当第1位和第2位是字母时, 分5个步骤确定一个序号中的字母和数字:
第1, 2步,从24个字母中选1个放在第1位、第1位,各有24种选法 ;
第3~5步都是从10个数字中选1个放在相应的位置,各有10种选法 ,
根据分步乘法计数原理,号牌张数为
24×24×10×10×10=576000
同样,其余九个子类号牌也各有576000张.
例题分析
综合(1)(2)(3), 根据分类加法计数原理,这个发牌机关最多能发放的汽车号牌张数为
100000+1200000+5760000=7060000.
10×24×24×103=5760000
于是,这类号牌张数一共为576000×10=5760000.
课堂练习
课本P11
解:展开后共有3×3×5=45项.
1. 乘积(a1+a2+a3)(b1+b2+b3)(c1+c2+c3+c4+c5) 展开后共有多少项?
解:9+8+7+6+5+4+3+2+1=45 (个).
2. 在所有的两位数中,个位数字小于十位数字的有多少个?
3. 某商场有6个门,如果某人从其中的任意一个门进人商场,并且要求从其他的门出去,那么共有多少种不同的进出商场的方式?
解:进出商场的不同方式有6×5=30(种).
课堂练习
课本P11
4. 任意画一条直线,在直线上任取n个分点.
(1) 从这n个分点中任取2个点形成一条线段,可得到多少条线段?
(2) 从这n个分点中任取2个点形成一个向量,可得到多少个向量?
解:
课堂练习
课本P7
4. 在1, 2, ... , 500中,被5除余2的数共有多少个?
被5除余2的一位数
被5除余2的二位数
被5除余2的三位数
2个
9×2=18个
4×10×2=80个
N=2+18+80=100(个)
分析:被5除余2的数个位需为7或2.
组数问题
课堂练习
课本P7
变式 在1,2,3,…,200这些自然数中,各个数位上都不含
数字8的自然数共有多少个?
不含8的一位数
不含8的二位数
不含8的三位数
8个
8×9=72个
1×9×9+1=82个
N=8+72+82=162(个)
组数问题
课堂练习
课本P7
5. 由数字1, 2, 3, 4, 5可以组成多少个三位数(各位上的数字可以
重复)?
解:5×5×5= 125 个 .
变式:由数字0, 1, 2, 3, 4可以组成多少个三位数(各位上的数字可以重复)?
解:4×5×5= 100 个 .
变式:由数字0, 1, 2, 3, 4可以组成多少个三位数(各位上的数字不可重复)?
解:4×4×3= 48个 .
百位
十位
个位
组数问题
课堂练习
课本P7
变式:由数字0, 1, 2, 3, 4可以组成多少个能被2整除的三位数(各位上的数字不可重复)?
解:12+9+9= 30个 .
百位
十位
个位
组数问题
个位是0
个位是2
个位是4
4×3×1=12个
3×3×1=9个
3×3×1=9个
2. 在所有的两位数中,个位数字小于十位数字的两位数共有多少个?
分析:完成的是哪一件事?
“组成个位数字大于十位数字的两位数”.
解:个位数字是0,则十位数字可以是1,2,3,4,5,6,7,8,9中的一个,故有9个;
个位数字是1,则十位数字可以是2,3,4,5,6,7,8,9中的一个,故有8个;
….
则一共有1+2+3+4+5+6+7+8+9=45(个).
课堂练习
课本P11
组数问题
解决组数问题的方法
(1)对于组数问题,一般按特殊位置(一般是末位和首位)由谁“占领”分类,分类中再按特殊位置(或者特殊元素)优先的方法分步完成,如果正面分类较多,可采用间接法从反面求解.
(2)解决组数问题,应注意其限制条件.有些条件是隐藏的,要善于挖掘. 组数时,要注意特殊元素、特殊位置优先的原则.
方法总结
1. 高三年级的三个班要到甲、乙、丙、丁四个工厂进行社会实践,其中甲工厂必须有班级去,每班去哪个工厂可自由选择,则不同的分配方案有( )
A.16种 B.18种 C.37种 D.48
补充练习
抽取与分配问题
C
N=4×4×4-3×3×3=37(个).
2. 把3个不同的小球放入5个不同的盒子,若每个盒子至多放一个小球,则共有多少种方法?
补充练习
抽取与分配问题
N=5×4×3=60(个).
解决抽取(分配)问题的方法
(1)当涉及对象的数目不大时,一般选用列举法、树状图法、框图法或者图表法.
(2)当涉及对象的数目很大时,一般有两种方法:
①直接法.直接使用分类加法计数原理或分步乘法计数原理.一般地,若抽取是有顺序的,就按分步进行;若是按对象特征抽取的,则按分类进行.
②间接法.先去掉限制条件,计算所有的抽取方法数,再减去所有不符合条件的抽取方法数.
方法总结
课堂小结
用两个计数原理解决计数问题时,最重要的是在开始计算之前要仔细分析两点:
一、要完成的“一件事”是什么;
二、需要分类还是分步.
分类要做到“不重不漏”,分类后再分别对每一类进行计数,
最后用分类加法计数原理求和,得到总数.
分步要做到“步骤完整”,即完成了所有步骤,恰好完成任务,分步后再计算每一步的方法数,最后根据分步乘法计数原理,把完成每一步的方法数相乘,得到总数.
下节课见!
$