乐读窝

程序员的数学思维修炼

乐读窝 > 科普学习 > 程序员的数学思维修炼

4.3加法原理

书籍名:《程序员的数学思维修炼》    作者:周颖



前面曾提到,要将所有情况都列出来,还经常要用到加法原理。下面就来看看加法原理的特点和应用。



4.3.1 仍然是行程问题


首先,仍然来看行程问题。

日常生活中常有这样的情况,就是在做一件事时,有几类不同的方法,而每一类方法中,又有几种可能的做法。那么,考虑完成这件事所有可能的做法,就要用我们将讨论的加法原理来解决。

例如,某公司销售经理王经理从重庆到成都参加会议,他可以乘火车也可以乘长途汽车,现在知道每天有13趟火车从重庆到成都,有8趟长途汽车从重庆到成都。那么王经理在一天中去成都能有多少种不同的走法?

分析这个问题发现,王经理从重庆去成都要么乘火车,要么乘长途汽车,有这两大类走法,如果乘火车,有13趟火车可选,如果乘长途汽车,有8趟汽车可选。

那么,王经理在一天中可以有13+8=21种不同的走法。



4.3.2 总结出的加法原理


在上面的问题中,完成一件事有两大类不同的方法。在具体做的时候,只要采用一类中的一种方法就可以完成,并且两大类方法是互无影响的,那么完成这件事的全部做法的总数,就是用第一类的方法数加上第二类的方法数,这就是加法原理。

一般地,如果完成一件事有N类方法,第一类方法中有M1种不同做法,第二类方法中有M2种不同做法,第三类方法中有M3种不同做法……,第N类方法中有Mn种不同的做法,则完成这件事共有:

种不同的方法。

选用加法原理的条件:如果完成一件事中有N类方法,这N类方法彼此之间是相互独立的,无论用哪一类方法中的某种方法都能单独完成这件事,求完成这件事的方法种类,则可使用加法原理。

在加法原理中的分类,是指一件事在一定标准下进行的分类,分类标准不同,得到的分类也不同,分类要满足不重复不遗漏的要求。完成这件事的各种方法是相互独立、相互排斥的,每一种方法都能完成这件事。

结合前面用的乘法原理,要区分加法原理与乘法原理,只需要注意,如果做一件事,完成它若是有N类办法,是分类问题,每一类中的方法都是独立的,因此使用加法原理;做一件事,需要分N个步骤,步与步之间是连续的,只有将分成的若干个互相联系的步骤,依次相继完成,这件事才算完成,就适用乘法原理。

完成一件事的分“类”和“步”是有本质区别的,因此也就将两个原理区分开了。



4.3.3 骰子出现偶数的次数


在很多游戏中,都需要用到骰子中的点数来决定游戏的进程。一粒骰子共有6面,分别标出1、2、3、4、5、6这6个数字。如果将两粒骰子同时掷下,向上一面的数字之和为偶数的有多少种情形?如图4-11所示,两粒骰子的点数分别为5和3,加起来总点数为8,则说明两粒骰子总点数为偶数。

图4-11

要使两粒骰子点数之和为偶数,只要这两粒骰子点数中数字的奇偶性相同即可。即这两个骰子中的数字要么同为奇数,要么同为偶数,若为一奇一偶,相加的和必为奇数。所以,可分两大类来考虑(注意是分为两大类,不是两步)。

第一类,两个数字同为奇数。由于两粒骰子可以分成两步来查看其点数(这里是分步,不是分类),查看第1粒骰子时,出现奇数有3种可能,即1、3、5;查看第2粒骰子时,出现奇数也有3种可能。根据乘法原理,这时共有3×3=9种不同的情形。

第二类,两个数字同为偶数,类似第一类的讨论方法,也有3×3=9种不同情形。

根据以上的分析可看出,在求解骰子出现偶数的可能性时,既有分“类”也有分“布”,也就是说,需要将乘法原理和加法原理结合在一起使用。首先用乘法原理求出两粒骰子同为奇数,使两粒骰子总点数为偶数的情况,再用乘法原理求出两粒骰子同为偶数,使两粒骰子总点数为偶数的情况。最后用加法原理将这两类方法的数量相加。

即,两粒骰子点数总和为偶数的情形共有18种。