数论-计数与概率基础

排列与组合是基本的计数技巧。本节介绍一些基本的相关知识和方法。

加法原理:做一件事情有n个方法,第i个办法有pi种方案,则一共有p1+p2+.....+pn种方案。

乘法原理:做一件事情有n个步骤,第i个步骤有pi种方案,则一共有p1p2....pn种方案。

乘法原理是加法原理的特殊情况(按第一步骤进行分类),二者都可用于递推,注意应用加法原理的关键是分类:各类比之间必须没有重复,没有遗漏。如果有重复,可以使用容斥原理。

容斥原理.假设班里有10个学生喜欢数学,15个学生喜欢语文,21个学生喜欢编程,一共有多少个学生呢?是10+15+21=46个么?不是的,因为有些学生可能同时喜欢数学和语文,或者语文和编程,甚至还可能有三者都喜欢的。为了叙述方便,将喜欢语文、数学、编程的学生集合分别用A,B,C表示,则学生总数等于|A U B U C|,刚才已经说了,如果把这3个集合的元素个数|A|、|B|、|C|直接加起来,会有一些元素重复统计了,因此需要扣掉|A\capB|、|B\capC|、|C\capA|,但这样一来,又有一小部分多扣了,需要加回来:|A\capB\capC|。这样,记得到了一个公式:

|A U B U C| = |A| + |B| + |C| - |A\capB| - |B\capC| - |C\capA| + |A\capB\capC|

一般的,对于任意多个集合,都可以列出这样一个等式,其中左边是所有集合的并的元素个数,右边是这些集合的“各种搭配”,每个搭配都是若干个集合的交集,且每一项前面的正负号取决于集合的个数-奇数个集合为正,偶数个集合为负。

有重复元素的全排列。有k个元素,其中第i个元素有ni个,求全排列个数。

令所有ni之和为n,再设答案为x。首先做全排列,然后把所有元素编号,其中第s种元素编号为1-ns(例如,有3个a,两个b,先排列成aabba,然后可以编号为a1a3b2b1a2)。这样做以后,由于编号后所有元素均不相同,方案总数为n的全排列数n!。根据乘法原理,得到了一个方程:n1!n2!n3!....nk!x=n!,移项即可。原因就是编好号后,我们分为k个步骤,每一步都把ni个元素排好,有ni!种方法。最后一步只需要调整各自的位置就可以了。也就是全排列的个数x了。

可重复选择的组合:有n个不同元素,每个元素可以选多次,一共选k个元素,有多少种方法?例如,n=3,k=2时有6种:(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)

设第i个元素选xi个,问题转化为求方程x1+x2+...+xn=k的非负整数解的个数。令yi=xi+1,则答案为y1+y2+....+yn=k+n的正整数解的个数。想象有k+n个数字“1“排成一排,则问题等价于:把这些”1“分成n个部分,有多少种方法?这相当于在k+n-1个”候选分隔线“,中选n-1个,即C(k+n-1,n-1)=C(n+k-1,k)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值