几道关于计数的趣题

来源:互联网 发布:卢宇彤 知乎 编辑:程序博客网 时间:2024/05/17 02:53

1. 用PEPPER的6个字母进行排列,一共有几种不同的排列顺序?

这题和传统的排列不同,不是单纯的6!就好了,因为有重复元素,即每一个P和E都是相同的,若给所有字母标上下标,则以下三种排列P1E1P2P3E2R1,P2E1P1P3E2R1和P3E1P2P1E2R1都是相同的,这三种排列只能算是一种情况。所以现在我们要做的就是在6!种排列顺序中,挑出所有不同的排列顺序。对于一种给定的顺序比如说PPPEER,如果能算出PPPEER共能代表多少种排列,然后用总数除一下,就能得到不同的排列数。很明显有3!*2!种(P的带下标排列乘以E的带下标排列)。然后6!/(3!*2!) 就是所求的答案。


2. 证明nCr = (n-1)C(r-1)+ (n-1)Cr (注:nCr 代表n里面选择r个)

这是一个经典的组合学结论。这里给出一个比较巧妙的证明。
假设有一个特殊的元素A,那么nCr里要么包含A,要么不包含A。
假如包含A,那么就是在剩下的n-1个里选r-1个,即(n-1)C(r-1);假如不包含A,那么就是在剩下的n-1个里选r个,即(n-1)Cr。所以结合下两种情况,nCr = (n-1)C(r-1)+ (n-1)Cr。


3. x1+x2+...+xr = n一共有多少个正整数解? 

这是个“插空法”的典型应用。画n个圈,圈和圈之间有n-1个空挡。所以问题就转化为,在这n-1个空挡里,选择r-1个,就把圈分成r部分,第一部分的圈圈数即x1,第一部分的圈圈数即x2,以此类推。所以答案即(n-1)C(r-1)。很显然这个“插空法”的解和原问题的解是一一对应的。

拓展问题:x1+x2+...+xr = n一共有多少个非负整数解?
这个问题等价于x1+x2+...+xr = n+r有多少个正整数解。


4. 3*4矩形,你从左下角出发,只能向右走和向上走,目的地是右上角,共有多少种移动方法?



我们发现,一共可以走7步,其中有3步是向上走,其它均为向左,我们只要决定7步里哪3步是向上走,就能得出答案。所以这就是一个组合学问题,7C3即使答案。

其实你如果把从左下角出发,到图中任意一个点的移动方法数都算出来,值写在顶点旁边,然后想象一下手拿着左下角,把整个3*4矩形“拎”起来,那么这就是个杨辉三角。解释也很简单:走到右上角坐标(4,3)这个点,最后一步要么从它左边来,要么从它下面来,所以移动方法数等于到坐标(3,3)的方法数加上到坐标(4,2)的方法数。这就对应杨辉三角上面两个数相加等于下面那么数。


最后留一道思考题给大家思考思考:

5. 一共有16个身高不同的人,排列成两排,每排8人,要求每排的人身高从低到高,并且后排的每个人要比他对应的前排的人要高。问这样的排列方式一共有几种。




参考资料:

[1] 《A first course in Probability》 Sheldon M Ross

[2] 《程序员的数学》



原创粉丝点击