组合数学初步

入门:

先介绍三个简单的技术

插板法:

直接插板:

看下面的问题:

eg1:

\(x+y+z=20\),其中\(x,y,z\)为正整数,求有多少组解。

我们考虑有\(20\)个球排成一排。我们插入两个板子把这\(20\)个球分成\(3\)个部分,其中第一部分的球的个数是\(x\)的大小,第二部分是\(y\),第三部分是\(z\)

这两个板子怎么插呢不难想到——插在\(19\)个缝里。也就是在\(19\)个缝里选\(2\)个。

答案是$C_{19}^{2} $

先转化,再插板(一一对应):

eg2:

\(x+y+z=17\),其中\(x,y,z\)为自然数,求有多少组解。

这个问题不好直接插板。因为可能有零的出现,多个板子可以插在同一个地方。你考虑这样一件事,就是说下面这个问题的解其实和上面的问题一样:

\((x+1)+(y+1)+(z+1)=20\),其中\(x,y,z\)为正整数,求有多少组解。

是不是豁然开朗。我令:
\(a=x+1,b=y+1,c=z+1\),就是\(a+b+c=20\),\(a,b,c\)为正整数,求解的组数,和最开始的问题毫无区别。而这其实建立里一组一一对应的关系把一组\(a,b,c\)的解对应到了一组\(x,y,z\)的解。

独立完成下面的问题:

eg3:

\(x+y+z=14\),其中\(x>=-1,y>=0,z>=-2\)\(x,y,z\)为整数,求有多少组解。

答案
原问题可以化为:(x+2)+(y+1)+(z+3)=20,其中(x+2),(y+1),(z+3)为正整数,求有多少组解。

捆绑法:

eg1:

有$ABCDEFGH$8个人要做\(3\)个任务,\(EF\)要分同一个任务,有多少种分配方法?

如果没有\(EF\)分同一个任务的限制,就是一个插板法,可既然\(EF\)要分在一起,当成一个人(下文用\(K\)表示)就行了,问题可以转化为:

看下面的问题:有$ABCDKGH$7个人要做\(3\)个任务,有多少种分配方法?

这个问题直接插板就行了。

进阶:

Catalan 数(卡特兰数)

引入:

先看几个问题:

eg1.

\(N\)个数要按顺序放进一个栈里,每次有可能弹出栈顶或放入下一个元素,问有多少种过程。

eg2.

一个人从原点出发,若当前处于\((x,y)\),下一次可以走到\((x+1,y+1)\)\((x+1,y-1)\),走\(2* N\)步,不可以走到第四象限,最终走到\((2* N,0)\)的轨迹数。

eg3.

有一个\(N* N\)的格点图:
image
\(A(0,0)\)走到\(B(N,N)\),不走对角线\(AB\)以下的方案数。

eg4.

\(N+1\)个节点的满二叉树的个数(可以把一个左儿子看成\(+1\),一个右儿子看成\(-1\)

发现了吗,这其实是一个问题,卡特兰数的模型是这样的;

  • 从原点出发,向上走\(N\)步,向下走\(N\)步,其中只停留在正半轴的轨迹个数(可以到\(x\)轴),记作\(C_n\)

计算Catalan 数

先不考虑只在正半轴的条件,方案数就是$C_{2 * n}^{n} $,这时我们只需要把不符合要求的删掉。
先看下面的图,这种方案显然不合要求:

image

记得上文插板法一一对应的思想吗?我们找到这条不合要求的线,把它第一次到x轴一下之后的部分关于y=-1对称。

image

显然对称后的轨迹最后一定停留在(2* N,-2),也就是每一条不合要求的线都可以转化为一条从原点出发,最后到x=-2的轨迹。不难看出,反过来转化也是成立的。即这两者是一一对应的。现在只要算出有多少种情况最后停留在直线x=-2上,这很简单,2* N次选择N+1次向下。

这样我们得到了最朴素的计算公式:\(C_N=C_{2* N}^{N}-C_{2 * N}^{N+1}\)
再稍微推导一下:

\(C_N=C_{2* N}^{N}-C_{2 * N}^{N+1}\)

$=\frac{(N+1)(2* N)!}{(N+1)N!N!}-\frac{N(2 N)!}{ N(N+1)!(N-1)!} $

\(=\frac{N*(2* N)!}{(N+1)!N!}\)

\(=\frac{C_{2* N}^{N} }{N+1}\)

posted @ 2023-07-29 13:18  星河倒注  阅读(25)  评论(0编辑  收藏  举报