【多重集合的排列问题】

1.关于多重集和的排列和组合对应着母函数的普通母函数和指数型母函数。至于为啥,证明还是比较难搞得,我只会求组合得母函数得证明,求排列的暂时不会。最近遇到了几个多重集合求排列得问题,把指数型母函数拿出来复习一下。

2.首先,母函数也叫做生成函数。对于一个数列:a1,a2...an.我们定义它的指数型生成函数为:

                                                                                G(x)=\sum_{i=1}^{n}a_i*\frac{x^i}{i!}

其中ai就是系数啦。然后有着这么一个基本的计数定理:

对于一个多重集合,我们在计算它的k排列,可以采用它的生成函数计算。看上去有点难懂?来个简单得例子:

首先,这个数要求一个五位数,我们先把这个数的生成函数写一下:

                                         G(x)=(x+\frac{x^2}{2})*(1+x)*(1+x+\frac{x^2}{2}+\frac{x^3}{3!})*(1+\frac{x^2}{2}+\frac{x^4}{4!})

然后化简一下,看一下x^5的系数是多少,那么这个答案就是多少。至于为啥,这就是母函数的神奇所在了,证明就不再证明了(毕竟我也不会证这个)。

到这里大概直到母函数怎么解决计数的问题了。然而题目中哪有这么easy????

说到easy,那就看个最easy的版本。

HDU 2065:

                                                                 

 

一句话题意:给你四种字符和一些限制,构造一个长度为n的字符串有多少种方案数。一看N,完了,除了O(1)和O(log(N))的做法,此题无解。

那么简单分析,我们根据限制写这个函数的生成函数:

                                                               G(x)=(1+\frac{x^2}{2}+\frac{x^4}{4!}.....)^2*(1+x+\frac{x^2}{2}+\frac{x^3}{3!}...)^2

(PS:简单解释一些这个函数,因为AC都是偶数,所以只能拿偶数个,BD无所谓了,全部写上)

这个咋整?无穷级数???求和呗。前边和后边唯一的区别就是没有奇数项,这里就是数学基本功了,如果你足够敏感,一眼就看出来了前边数双曲余弦函数的泰勒展开,后边数e^x的泰勒展开。(PS:啥玩意,双曲函数是个啥?)

PS:补充双曲函数:

                                                  

那么把级数求个和,然后就是:

                                                   G(x)=(\frac{e^x+e^{-x}}{2})^2*e^{2x}

继续化简:

                                                  G(x)=\frac{1}{4}*(e^{4x}+2*e^{2x}+2)

有了这个式子,我们需要找到x^n的系数,那么把G(x)展开:

                                                  G(x)=\frac{1}{4}*(\sum_{n=1}^{\infty}4^n*\frac{x^n}{n!}+2*\sum_{n=1}^{\infty}2^n*\frac{x^n}{n!}+2)

考虑第n项的系数:

                                                an=\frac{4^n+2*2^n}{4}

就是答案。直接快速幂求答案O(logN)即可。

这个应该算是指数型母函数的一半用法了,基本上都是这么玩的。今年上海区域赛网赛有一个题,用到了这些东西。突然有感而发,写下了这个东东复习一下。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值