牛顿广义二项式定理-母函数

acm培训 同时被 2 个专栏收录
40 篇文章 0 订阅
15 篇文章 0 订阅

  好久没写博客了,有好多都是写成了草稿没写完。列个清单慢慢补。。

  1. 数论专题。
  2. 概率\期望专题
  3. 划分树专题
  4. 省赛训练补题
  5. 机器学习的记录
  6. 课程要求写的一些东西
  7. cf的题

好了进入正题=============================================

广义组合数

  数据结构老师让搜 ( 7 0.5 ) \binom{7}{0.5} (0.57) 这种东西。搜出来是广义组合数,对应的有广义二项式定理。一看这个玩意儿ACM经常用就学一下。
本来C(n, m)的定义是 ( m n ) = n ! m ! ( n − m ) ! \binom{m}{n}=\frac{n!}{m!(n-m)!} (nm)=m!(nm)!n! ,但是m>n的时候就会出现n-m<0的情况,而负数没有阶乘,所以好像因为这玩意儿还把定义给改了,改成 ( m n ) = ∏ i = n − m + 1 n i m ! \binom{m}{n}=\frac{\prod_{i=n-m+1}^{n} {i}}{m!} (nm)=m!i=nm+1ni
这样以后就能兼容表示了,和n、m的大小没关系。
比如
( 5 4 ) = 0 ∗ 1 ∗ 2 ∗ 3 ∗ 4 5 ! = 0 \binom{5}{4}=\frac{0 * 1 * 2 * 3 * 4}{ 5!} = 0 (45)=5!01234=0
( 2 − 2 ) = ( − 3 ) ∗ ( − 2 ) 2 ! = − 3 \binom{2}{-2}=\frac{(-3)*(-2)}{2!} =-3 (22)=2!(3)(2)=3
( 1 0.5 ) = 0.5 1 = 0.5 \binom{1}{0.5}=\frac{0.5}{1}=0.5 (0.51)=10.5=0.5
  至于这个玩意儿有没有什么现实意义emmm大概就像虚数一样吧,莫强求。
对了,显然,m在这儿要是非负整数,因为要算阶乘。

Γ \Gamma Γ函数

  这个东西概率论老师提到过,求积分(伽马分布)的时候好用。
  这个函数是欧拉搞出来的,本来是哥德巴赫想搞,没搞出来,然后他写信问伯努利(我也不知道是那一家子里的哪一个),那时候欧拉刚好在伯努利旁边顺手就搞出来了。然而那时候欧拉才22岁。
  其实这个就是把阶乘扩展到实数域了。用 Γ ( x ) \Gamma(x) Γ(x)表示阶乘的话,整数的时候有 Γ ( x ) = ( x − 1 ) Γ ( x − 1 ) \Gamma(x)=(x-1)\Gamma(x-1) Γ(x)=(x1)Γ(x1)。把这个定义拓展到实数域同样适用。这个函数的积分写法是 Γ ( n ) = ∫ 0 + ∞ x n − 1 e − x d x \Gamma(n)=\int_{0 }^{+\infty}{x^{n-1}e^{-x}dx} Γ(n)=0+xn1exdx
对右边积分化简,得
Γ ( n ) = ∫ 0 + ∞ x n − 1 e − x d x = − x n − 1 e − x ∣ 0 + ∞ + ( n − 1 ) ∫ 0 + ∞ x n − 1 e − x d x = 0 + ( n − 1 ) ∫ 0 + ∞ x n − 1 e − x d x = ( n − 1 ) Γ ( n − 1 ) \begin{aligned} \Gamma(n)&amp;=\int_{0 }^{+\infty}{x^{n-1}e^{-x}dx} \\ &amp;=-x^{n-1}e^{-x}|_{0}^{+\infty}+(n-1)\int_{0 }^{+\infty}{x^{n-1}e^{-x}dx} \\ &amp;=0+(n-1)\int_{0 }^{+\infty}{x^{n-1}e^{-x}dx} \\ &amp;=(n-1)\Gamma(n-1) \end{aligned} Γ(n)=0+xn1exdx=xn1ex0++(n1)0+xn1exdx=0+(n1)0+xn1exdx=(n1)Γ(n1)
有了这个定义可以写小数阶乘。这个和广义组合数有点关系其实(在正数部分),具体的就不说了没什么用。

广义二项式定理

  原来的二项式定理中n是正数,广义的二项式定理中定义了负数的范围。
( 1 − x ) − n = ∑ i = 0 + ∞ ( i − n ) ( − x ) i = ∑ i = 0 + ∞ ( i n + i − 1 ) x i = ∑ i = 0 + ∞ ( n − 1 n + i − 1 ) x i ( − 1 ≤ x ≤ 1 ) (1-x)^{-n}=\sum_{i=0}^{+\infty}\binom{i}{-n}(-x)^{i}=\sum_{i=0}^{+\infty}\binom{i}{n+i-1}x^{i} =\sum_{i=0}^{+\infty}\binom{n-1}{n+i-1}x^{i} \\(-1\leq x \leq 1) (1x)n=i=0+(ni)(x)i=i=0+(n+i1i)xi=i=0+(n+i1n1)xi(1x1)
  这里面的组合数是广义的。
  这个定理用泰勒展开很好证明,就不写了。

母函数

  母函数是ACM里经常用到的处理组合数学的工具,今天学了一下。
  母函数分为很多种, 分为普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数,每种母函数对应不同种类的序列。今天先写普通的母函数,以后遇到再补。
  我学了一点,觉得普通母函数是把序列信息存在指数或者系数位置,然后利用构造出的母函数来解决问题。

	母函数就是一列用来展示一串数字的挂衣架。——赫伯特·唯尔夫

 这个挂衣架是什么意思呢,举几个栗子来看一下:
对于序列1,2,3,4,5可以(还有其他)构造出母函数: g ( x ) = x 1 + 2 x 2 + 3 x 3 + 4 x 4 + 5 x 5 g(x)=x^{1}+2x^{2}+3x^{3}+4x^{4}+5x^{5} g(x)=x1+2x2+3x3+4x4+5x5
对于序列5,5,5,5,5可以(还有其他)构造出母函数: g ( x ) = 5 x 1 + 5 x 2 + 5 x 3 + 5 x 4 + 5 x 5 g(x)=5x^{1}+5x^{2}+5x^{3}+5x^{4}+5x^{5} g(x)=5x1+5x2+5x3+5x4+5x5
 这么看来普通母函数的定义就很明显了:
对 于 序 列 a 1 . . . a n : g ( x ) = ∑ i = 1 n a i x i 对于序列a_{1}...a_{n}:g(x)=\sum_{i=1}^{n}a_{i}x^{i} a1...an:g(x)=i=1naixi
 母函数有什么应用呢?先看一道题目:

 n+k= x 1 + x 2 + . . . x k x_{1}+x_{2}+...x_{k} x1+x2+...xk的正整数解有多少种?

 中学的想法是“隔板法”,也就是在n+k个东西中间插上k-1个板子,那分成的k个区域就是一种解。总共有 ( k − 1 n + k − 1 ) = ( n n + k − 1 ) \binom{k-1}{n+k-1}=\binom{n}{n+k-1} (n+k1k1)=(n+k1n)种。其实这个问题可以用母函数来解决。
显然每个变量 x i x_{i} xi解的范围是序列[0, n],所以对于某个变量来说每个小于n正整数都可能取到,也就是每个数字可能取一个,这个个数序列就是[1, 1, 1, 1, …1],一共n+1个1表示数字0~n可能取一次, 所以每个变量的可以构造母函数 g ( x ) = ∑ i = 0 + ∞ x i = ( 1 − x ) − 1 g(x)=\sum_{i=0}^{+\infty}x^{i}=(1-x)^{-1} g(x)=i=0+xi=(1x)1。我们把每个变量的母函数乘起来,得到最终的母函数
G ( x ) = ( g ( x ) ) k = ( 1 − x ) − k G(x)=(g(x))^{k}=(1-x)^{-k} G(x)=(g(x))k=(1x)k
可以知道这个G(x)展开式中 x n x^{n} xn的系数就是答案。为什么呢?因为序列的信息放在指数和系数上了(指数部分表示取这个值,系数部分表示取一次),当各个母函数相乘的时候指数部分就相加,所以最终每有一个指数为n的项就是一个解,所以 x n x^{n} xn的系数就是答案。

 那母函数的系数怎么求呢,那就要用到广义二项式定理了。根据上面的定理, x n x^{n} xn的项就是 ( n n + k − 1 ) \binom{n}{n+k-1} (n+k1n),和隔板法得到的结果一致。

再来一道题:BZOJ3028 食物
题意是每种食物的限制如下:
汉堡:偶数个;
可乐:0个或1个
鸡腿:0个,1个或2个
蜜桃:奇数个
鸡块:4的倍数个
包子:0个,1个,2个或3个
土豆:不超过一个。
面包:3的倍数个

问带n个食物的方案数(n<=10^500)
对每种食物构造母函数:
汉堡= x 0 + x 2 + x 4 . . . = 1 1 − x 2 x^{0}+x^{2}+x^{4}...=\frac{1}{1-x^{2}} x0+x2+x4...=1x21
可乐= x 0 + x 1 = 1 + x x^{0}+x^{1}=1+x x0+x1=1+x
鸡腿= x 0 + x 1 + x 2 x^{0}+x^{1}+x^{2} x0+x1+x2
蜜桃= x 1 + x 3 + x 5 . . . = x 1 − x 2 x^{1}+x^{3}+x^{5}...=\frac{x}{1-x^2} x1+x3+x5...=1x2x
鸡块= x 0 + x 4 + x 8 . . . = 1 1 − x 4 x^{0}+x^{4}+x^{8}...=\frac{1}{1-x^{4}} x0+x4+x8...=1x41

最终得到 x ( 1 − x ) 4 \frac{x}{(1-x)^{4}} (1x)4x
因为 1 1 − x \frac{1}{1-x} 1x1是等比级数,所以 1 ( 1 − x ) 4 \frac{1}{(1-x)^{4}} (1x)41可以看成 ( 1 − x ) − 4 (1-x)^{-4} (1x)4,就可以得到 ( 1 − x ) − 4 (1-x)^{-4} (1x)4 x n − 1 x^{n-1} xn1的系数 ( 4 − 1 4 + n − 1 − 1 ) = ( 3 n + 2 ) \binom{4 -1}{4 + n - 1-1}=\binom{3}{n+2} (4+n1141)=(n+23)
所以答案是 ( 3 n + 2 ) \binom{3}{n+2} (n+23)

生成函数(母函数)题目(待做)

bzoj3028
就是上面的例题
HDU1028

HDU1085

洛谷P2000

Bzoj3771 (母函数 FFT 容斥)
bzoj3509 (母函数+分块+暴力+FFT)

关于FFT看我写的这个多项式变换与FFT

bzoj3696 (异或规则下的母函数)
hdu1557
hdu1028 任意给你一个整数,问有多少种拆分方案。
hdu1398
hdu 1171
hdu 2079
hdu2082
hdu 1521 (指数型母函数)

  • 6
    点赞
  • 4
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值