6.1.3分类加法计数原理与分步乘法计数原理的综合应用第六章计数原理凯里一中尹洪January26,2025(一)创设情境揭示课题【回顾】两个计数原理分类加法计数原理分步乘法计数原理一般地,完成一件事有n类不同方案,在第1类方案中有1m种不同的方法,在第2类方案中有2m种不同的方法,……,在第n类方案中有nm种不同的方法,那么完成这件事共有12...nNmmm种不同的方法.一般地,完成一件事有n个步骤,做第一步有1m种不同的方法,做第二步有2m种不同的方法,……,做第n步有nm种不同的方法,那么完成这件事共有12...nNmmm种不同的方法.分类加法计数原理针对的是“分类"问题,其中各种方法相互独立,用其中任何一种方法都可以做完这件事.分步乘法计数原理针对的是“分步”问题,各个步骤中的方法互相依存,只有每一个步骤都完成才算做完这件事.【问题】计数问题是我们经常遇到的,如何利用两个计数原理快速有效解决有关问题呢?(二)阅读精要研讨新知例题研讨学习例题的正规表达学习例题的常规方法从例题中学会思考如何看例题阅读领悟课本8P例7、例8例7计算机编程人员在编写好程序以后需要对程序进行测试程序员需要知道到底有多少条执行路径(程序从开始到结束的路线),以便知道需要提供多少个测试数据,一般地,一个程序模块由许多子模块组成.图6.1-4是一个具有许多执行路径的程序模块,它有多少条执行路径?另外,为了减少测试时间,程序员需要设法减少测试次数,你能帮助程序员设计一个测试方法,以减少测试次数吗?解:由分类加法计数原理,子模块1、子模块2、子模块3中的子路径条数共为18452891子模块4、子模块5中的子路径条数共为384381.又由分步乘法计数原理,整个模块的执行路径条数共为91817371在实际测试中,程序员总是把每一个子模块看成一个黑箱,即通过只考察是否执行了正确的子模块的方式来测试整个模块.这样,他可以先分别单独测试5个模块,以考察每个子模块的工作是否正常,总共需要的测试次数为1845283843172.再测试各个模块之间的信息交流是否正常,只需要测试程序第1步中的各个子模块和第2步中的各个子模块之间的信息交流是否正常,需要的测试次数为326如果每个子模块都工作正常,并且各个子模块之间的信息交流也正常,那么整个程序模块就工作正常.这样,测试整个模块的次数就变为1726178显然,178与7371的差距是非常大的.【思考】你看出了程序员是如何实现减少测试次数的吗?例8通常,我...