离散数学知识点总结(6)-计数技术

鸽巢原理:若将n只鸽子置于m个笼子中, 则至少有一个笼子需容纳 ⌊(n-1)/m⌋+1个

容斥原理......

乘法原理、加法原理:...... 

如果有4个男孩和4个女孩坐成一排,每个人旁边都只能坐着异性,那么共有多少种坐的方式? 2*4!*4!

由a, b, b, e, e, h, i, s, s, t, t, t可以组成多少个长度为12的字符串?C(12, 3)*C(9, 2)*C(7, 2)*C(5, 2)*3!=9979200 

从(0, 0)点出发沿x轴或y轴的正方向每步走一个单位,最终走到(m, n)点,有多少条路径? C(m+nm)=C(m+n, n) 

集合{1, 2, 3, ..., n}上的单调递增函数数量?就是要求(1 , 1)到(n+1 , n)上的非降路径数量C(2n-1, n)

从集合{1, 2, 3, ..., m}到{1, 2, 3, ..., n}上的单调函数数量是2C(m+n-1, m)

⭐️n个结点依次进栈,出栈顺序有多少种?

假设x轴代表进栈、y轴代表出栈,则x≥y,即路径从(0 , 0)到(n , n)但始终不越过对角线

假设路径越过了对角线并与y=x+1交于P,将(0,  0)到P的部分沿着y=x+1翻转,从(-1 , 1)到(n , n)的非降路径数就是C(2n, n-1)

故不越过对角线的非降路径数就是C(2n, n)-C(2n, n-1)=C(2n, n)/(n+1)

此外也可以用生成函数的方法解答

错排数/蒙特莫特数D(n)

方法1:建立递推关系

第1步,选择第n个元素的位置,共有n-1种方法(假定放在编号为k的位置) 

第2步,选择第k个元素的位置,有两种可能 

第k个元素放在编号为n的位置,此时剩下的n-2个元素进行错排即可,方案数是D(n-2) 

‚或者第k个元素不在编号为n的位置,此时把编号为n的位置视作编号为 k 的位置,将 n-1 个元素进行错排即可,方案数是 D(n-1)

由此得到递推关系D(n)=(n-1)(D(n-2)+D(n-1))初值D(1)=0 和 D(2)=1  

方法2:应用容斥原理。 

n个元素的全排列有n!个,用集合Ak表示第k个位置是第k个元素(也即元素k没有发生错排)的所有排列 

|Ai|=(n-1)!

|Ai∩Aj|=(n-2)!

|Ai∩Aj∩Ak|=(n-3)!

…… 

|A1∩A2∩…∩An|=0! 

 

posted @ 2019-04-09 23:44  扬羽流风  阅读(872)  评论(0编辑  收藏  举报