内容正文:
6.1分类加法计数原理与分步乘法计数原理(二)
复习引入
完成一件事情,有n类不同方案,在第1类方案中有m1种不同的方法,在第2类方案中有m2种不同的方法……在第n类方案中有mn种不同的方法.那么完成这件事共有N=m1+m2+⋅⋅⋅+m𝑛种不同的方法.
1.分类加法计数原理
2.分步乘法计数原理
完成一件事情,需要分成n个步骤:做第1步有m1种不同的方法,做第2步有m2种不同的方法……做第n步有mn种不同的方法.
那么完成这件事共有N=m1× m2× …× mn种不同的方法.
分类加法计数原理和分步乘法计数原理,回答的都是有关做一件事的不同方法的种数问题 .
区别在于:
分类加法计数原理: 针对的是"分类"问题,其中各种方法相互独立,用其中任何一种方法都可以做完这件事;
分步乘法计数原理: 针对的是"分步"问题,各个步骤中的方法互相依存,只有各个步骤都完成才算做完这件事.
讲课人:邢启强
‹#›
分类计数原理 分步计数原理
区别1
区别2
区别3
完成一件事,共有n类办法,关键词“分类”
完成一件事,共分n个步骤,关键词“分步”
每类办法都能独立地完成这件事情,它是独立的、一次的、且每次得到的是最后结果,只须一种方法就可完成这件事。
每一步得到的只是中间结果,任何一步都不能独立完成这件事,缺少任何一步也不能完成这件事,只有各个步骤都完成了,才能完成这件事。
各类办法是互相独立的。
各步之间是互相关联的。
即:类类独立,步步关联。
复习讲评
讲课人:邢启强
‹#›
例题讲评
例1.计算机编程人员在编写好程序以后需要对程序进行测试,程序员需要知道到底有多少条执行路径(程序从开始到结束的路线),以便知道需要提供多少个测试数据。般地,一个程序模块由许多子模块组成。如图是一个具有许多执行路径的程序模块,它有多少条执行路径?
另外,为了减少测试时间,程序员需要设法减少测试次数,你能帮助程序员设计一个测试方法,以减少测试次数吗?
分析:整个模块的任意一条执行路径都分两步完成:第1步是从开始执行到A点;第2步是从A点执行到结束,而第1步可由子模块1、子模块2、子模块3中任何一个来完成;第2步可由子模块4、子模块5中任何一个来完成,因此,分析一条指令在整个模块的执行路径需要用到两个计数原理
讲课人:邢启强
‹#›
解:由分类加法计数原理,子模块1、子模块