生成函数全家桶

文章目录

  • 有用的式子
    • 1.(牛顿二项式定理)
    • 2.
  • 普通生成函数(OGF)
    • 常见封闭形式:
    • 1.
    • 2.
    • 3.
    • 4.
  • 指数生成函数(EGF)
    • 排列与圆排列

有用的式子

1.(牛顿二项式定理)

我们把组合数的定义推广:
(rk)=rk‾k!(r∈C,k∈N)\binom{r}{k}=\frac{r^{\underline{k}}}{k!}\space(r\in \mathbf{C},k\in \mathbf{N})(kr)=k!rk (rC,kN)
其中 rk‾r^{\underline{k}}rk 指下降幂,即 ∏i=0k−1(r−i)\prod_{i=0}^{k-1}(r-i)i=0k1(ri)。(不过大多数时候我们只需要用到实数域的定义)
然后我们就可以对二项式定理进行推广:
(1+x)r=∑i≥0(ri)xi(r∈C)(1+x)^{r}=\sum_{i\ge0}\binom{r}{i}x^i\space(r\in \mathbf{C})(1+x)r=i0(ir)xi (rC)

2.

对于组合数:
(n+mm)\binom{n+m}{m}(mn+m)
我们考虑其实际意义,枚举其与最右侧相连的极长连续段长度 iii,那么就有:
(n+mm)=∑i=0m(n+m−i−1m−i)=∑i=0m(n+i−1i)\binom{n+m}{m}=\sum_{i=0}^m\binom{n+m-i-1}{m-i}=\sum_{i=0}^m\binom{n+i-1}{i}(mn+m)=i=0m(min+mi1)=i=0m(in+i1)
我们常常会用到这个式子的反演。

普通生成函数(OGF)

数列 aaa 的普通生成函数为:
F(x)=∑n=0anxnF(x)=\sum_{n=0}a_nx_nF(x)=n=0anxn
卷积性质:
A(x)∗B(x)=∑n=0xn∑i=0naibn−iA(x)*B(x)=\sum_{n=0}x^n\sum_{i=0}^{n}a_ib_{n-i}A(x)B(x)=n=0xni=0naibni

常见封闭形式:

1.

∑n=0xn=11−x\sum_{n=0}x^n=\frac{1}{1-x}n=0xn=1x1
∑n=0kxn=1−xk+11−x\sum_{n=0}^{k}x^n=\frac{1-x^{k+1}}{1-x}n=0kxn=1x1xk+1
证明:
就是等比求和公式。

2.

∑n=0(n+k−1k−1)xn=1(1−x)k\sum_{n=0}\binom{n+k-1}{k-1}x^n=\frac{1}{(1-x)^k}n=0(k1n+k1)xn=(1x)k1
证明:

  1. 数学归纳法:结合式子一大力揉式子。
  2. 隔板法:第 nnn 项的系数等同于从 kkk∑n=0xn\sum_{n=0}x^nn=0xn 中个选出一项,次数后恰好为 nnn 的方案数,那么就转换为 kkk 个有序非负整数加和为 nnn 的方案数。全加一后隔板即可。

3.

∑n=0(nk)xn=xk(1−x)k+1\sum_{n=0}\binom{n}{k}x^{n}=\frac{x^k}{(1-x)^{k+1}}n=0(kn)xn=(1x)k+1xk
证明:
第二个式子,为了方便稍微变下形:
∑n=0(n+kk)xn=1(1−x)k+1\sum_{n=0}\binom{n+k}{k}x^n=\frac{1}{(1-x)^{k+1}}n=0(kn+k)xn=(1x)k+11
然后两边同乘 xkx^kxk
∑n=0(n+kk)xn+k=xk(1−x)k+1\sum_{n=0}\binom{n+k}{k}x^{n+k}=\frac{x^k}{(1-x)^{k+1}}n=0(kn+k)xn+k=(1x)k+1xk
∑n=k(nk)xn=xk(1−x)k+1\sum_{n=k}\binom{n}{k}x^{n}=\frac{x^k}{(1-x)^{k+1}}n=k(kn)xn=(1x)k+1xk
由于 n<kn<kn<k 是组合数全是0,所以求和可以伸下去,得到:
∑n=0(nk)xn=xk(1−x)k+1\sum_{n=0}\binom{n}{k}x^{n}=\frac{x^k}{(1-x)^{k+1}}n=0(kn)xn=(1x)k+1xk

4.

∑n=0(kn)xn=(1+x)k\sum_{n=0}\binom{k}{n}x^n=(1+x)^kn=0(nk)xn=(1+x)k
证明:
二项式定理即可。

指数生成函数(EGF)

数列 aaa 的指数生成函数为:
F^(x)=∑i=0ain!xi\hat{F}(x)=\sum_{i=0}\frac{a_i}{n!}x^iF^(x)=i=0n!aixi
卷积性质:
A^(x)∗B^(x)=∑n=0xn∑i=0n(ni)aibn−i\hat{A}(x)*\hat{B}(x)=\sum_{n=0}x^n\sum_{i=0}^{n}\binom{n}{i}a_ib_{n-i}A^(x)B^(x)=n=0xni=0n(in)aibni

排列与圆排列

排列的方案数为 n!n!n!,其 EGF 为:
P^(x)=∑n!n!xn=11−x\hat{P}(x)=\sum\frac{n!}{n!}x^n=\frac{1}{1-x}P^(x)=n!n!xn=1x1
类似于组合数的证明,每个圆排列对应 nnn 个排列,方案数为 (n−1)!(n-1)!(n1)!,其 EGF 为:
Q^(x)=∑(n−1)!n!xn=∑xnn=−ln⁡(1−x)=ln⁡11−x=ln⁡P^(x)\hat{Q}(x)=\sum\frac{(n-1)!}{n!}x^n=\sum\frac{x^n}{n}=-\ln(1-x)=\ln\frac{1}{1-x}=\ln\hat{P}(x)Q^(x)=n!(n1)!xn=nxn=ln(1x)=ln1x1=lnP^(x)
∑xnn=−ln⁡(1−x)\sum\dfrac{x^n}{n}=-\ln(1-x)nxn=ln(1x) 可通过对两边求导再积分证明)
这个关系可以这么理解:每个排列可以形成若干个置换环,每个置换环都是一个圆排列问题。
所以 当一个问题 FFF 可以转化为按照任意方法分成若干集合,每种划分的贡献是每个集合 GGG 问题的方案累乘起来时,它们的 EGF 就有如下等量关系:
F^(x)=exp⁡(G^(x))\hat{F}(x)=\exp(\hat{G}(x))F^(x)=exp(G^(x))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020年牛客多校第五场C题-easy(纯组合计数不要生成函数的做法)

文章目录descriptionsolutioncodedescription 有TTT组测试数据 对于两个长度为KKK的数列{a}\{a\}{a}和{b}\{b\}{b}&#xff0c;满足∑i1KaiN,∑i1KbiM\sum_{i1}^Ka_iN,\sum_{i1}^Kb_iM∑i1K​ai​N,∑i1K​bi​M 对于这两个数列&#xff0c;定义权值为P∏i1Kmin⁡(ai,bi)P\p…

部署Chart应用并使用.net core读取Kubernetes中的configMap

上一篇文章讲了 k8s使用helm打包chart并上传到腾讯云TencentHub&#xff0c;今天就讲一下使用Helm部署应用并使用configMap代替asp.net core 中的appsettings.json文件。把Chart上传到TencentHub之后&#xff0c;我们就可以通过腾讯云的容器服务&#xff0c;直接部署Helm应用了…

Vases and Flowers HDU - 4614

Vases and Flowers HDU - 4614 题意: 一排空瓶子放花&#xff0c;操作1&#xff1a;从第x个瓶子开始放花&#xff0c;放y朵花&#xff0c;每个瓶子就一朵花&#xff0c;如果碰到已经有花的瓶子跳过这个瓶子&#xff0c;看下一个&#xff0c;当花没了&#xff0c;或者瓶子不够…

洛谷P3327:[SDOI2015]约数个数和(莫比乌斯反演)

枚举倍数的一种灵活的变形&#xff1a;g(d)∑d∣inf(i)∑i1⌊nd⌋f(i⋅d)g(d)\sum_{d|i}^nf(i)\sum_{i1}^{\lfloor\frac{n}{d}\rfloor}f(i\cdot d)g(d)∑d∣in​f(i)∑i1⌊dn​⌋​f(i⋅d) 很显然&#xff0c;但有时能发挥大作用。 其实本质还是要理解西格玛究竟是在算什么 解析…

EFCore Lazy Loading + Inheritance = 干净的数据表 (一)

前言α角 与 β角关于α角 与 β角的介绍&#xff0c;请见上文 如何用EFCore Lazy Loading实现Entity Split。本篇会继续有关于β角的彩蛋在等着大家去发掘。/斜眼笑其他本篇的程序&#xff0c;可以在 https://github.com/kentliu2007/EFCoreDemo/tree/master/InheritanceWithE…

专题突破之反悔贪心——建筑抢修,Cow Coupons G, Voting (Hard Version),Cardboard Box

文章目录[JSOI2007]建筑抢修[USACO12FEB]Cow Coupons GCF1251E2 Voting (Hard Version)CF436E Cardboard Box[JSOI2007]建筑抢修 luogu4053 将建筑按照结束时间从小到大排序 然后记录一下已经修理的建筑总共的花费时间 如果花费时间加上现在这个建筑的修建时间超过了这个建…

Max Sum Plus Plus HDU - 1024

Max Sum Plus Plus HDU - 1024 题意&#xff1a; 给你n个数&#xff0c;选m个子段&#xff0c;各个子段连续且不相交&#xff0c;长度可以为1&#xff0c;设maxn为各个子区间的和&#xff0c;求最大的maxn。 题解&#xff1a; 设dp[i][j]表示前j个数分成i段的最大值 对于第…

模板:杜教筛(莫比乌斯反演、数论)

所谓杜教筛&#xff0c;就是dms教给我们的筛 &#xff08;逃&#xff09; 前言 与其说算法&#xff0c;不如说是技巧。 可以在低于线性的时间复杂度&#xff08;准确的说是 O(n23)O(n^{\frac{2}{3}})O(n32​)&#xff09;内完成对积性函数的前缀和计算。 解析 考虑求函数 f…

程序员过关斩将--快速迁移10亿级数据

菜菜呀&#xff0c;咱们业务BJKJ有个表数据需要做迁移程序员主力 Y总现在有多少数据&#xff1f;菜菜大约21亿吧&#xff0c;2017年以前的数据没有业务意义了&#xff0c;给你半天时间把这个事搞定&#xff0c;绩效给你A程序员主力 Y总有绩效奖金吗&#xff1f;菜菜钱的事你去问…

[2021-09-09 T2] 就差⼀点——冒泡排序和反序表之间不为人知的秘密

就差一点解题报告descriptionsolutioncodedescription 题目描述 冒泡排序是⼀个简单的排序算法&#xff0c;其时间复杂度为O(n2)O(n^2)O(n2) 有⼀个大小为nnn的排列p1,...,pnp_1,...,p_np1​,...,pn​&#xff0c;⼩明想对这个排列进⾏冒泡排序&#xff0c;于是写了下⾯这份…

CodeForces - 76E Points

CodeForces - 76E Points 题意&#xff1a; 给你n个点的坐标&#xff0c;求所有一对点之间的距离的平方和 n<100000 题解&#xff1a; 直接暴力n2肯定不行&#xff0c;我们把这个的式子列出来&#xff1a; 代码&#xff1a; #include<bits/stdc.h> #define deb…

模板:Miller-RabinPollard-Rho(数论)

所谓 pollard-rho&#xff0c;就是泼辣的肉 &#xff08;逃&#xff09; 前言 许多题解都把这两个算法放在了一起。 那我也这样办吧&#xff01; miller-rabin可以在优秀的时间复杂度内完成对一个数的素性检测。 而pollard-rho则是立足于Miler-rabin之上&#xff0c;可以在 …

Asp.NetCore轻松学-部署到 Linux 进行托管

前言上一篇文章介绍了如何将开发好的 Asp.Net Core 应用程序部署到 IIS&#xff0c;且学习了进程内托管和进程外托管的区别&#xff1b;接下来就要说说应用 Asp.Net Core 的特性&#xff08;跨平台&#xff09;&#xff0c;将 .NetCore 部署到 Linux 中&#xff0c;主流的 Linu…

DevC++ 用C语言的多线程 实现简单的客户端和服务器

知识来源一&#xff1a; 使用Dev-C实现简单的客户端和服务器-CSDN博客 此先生的博客使用的是win32 SDK来创建多线程&#xff0c;然后鄙人对这个版本的多线程细节不明。于是又重新用C语言的线程替代win32API,以此继续学习服务器代码。 知识来源二&#xff1a;DevC 多线程创建…

[2021-09-09 T3] 序列/luogu P3943 星空(异或差分+bfs最短路+状压dp)

序列descriptionsolutioncodedescription 题目描述 长度为nnn的序列&#xff0c;初始全为000&#xff0c;每次可以选择⼀个数ai(1≤i≤l)a_i(1\le i\le l)ai​(1≤i≤l)&#xff0c;然后选择连续aia_iai​个元素异或上111 求最少的次数&#xff0c;使得对于所有i(1≤i≤k)i(…

HDU - 4608 I-number

题意&#xff1a; 给你一个x&#xff0c;让你构造一个y&#xff0c;y的要求&#xff1a; y>xy的各项之和为10的倍数在满足前两个的前提下&#xff0c;y尽可能小 题解&#xff1a; 模拟&#xff0c;尽可能的模拟&#xff0c;用字符串模拟 先将各位相加得到sum&#xff0c…

从初创公司的角度来看微服务

在开展微服务的过程中&#xff0c;了解要考虑哪些因素可能是非常有挑战性的事情。没有可以直接使用的金科玉律。每个过程都是不同的&#xff0c;因为每个组织面临的都是不同的环境。在本文中&#xff0c;我将从初创公司的角度分享我们学习到的经验和面临的挑战&#xff0c;以及…

洛谷P2056:[ZJOI2007]捉迷藏(点分树、STL)

解析 见到动态维护最远点对&#xff0c;不难想到利用 set 维护最大值和次大值&#xff0c;每个点维护两个 set 的杂技做法。 但是问题是…T了啊。 咋办嘞。 一个在本题至关重要的 trick&#xff1a;利用两个堆来支持访问最大值和删除 具体也很好理解&#xff1a;当删除的时候…

[NOI2018] 归程(线段树维护并查集的可持久化/kruskal重构树,倍增+dijkstra最短路)

[NOI2018] 归程descriptionsolution1code1solution2codedescription 题目描述 本题的故事发生在魔力之都&#xff0c;在这里我们将为你介绍一些必要的设定 魔力之都可以抽象成一个nnn个节点、mmm条边的无向连通图&#xff08;节点的编号从111至nnn&#xff09;我们依次用 l,…

CodeForces - 616D Longest k-Good Segment

CodeForces - 616D Longest k-Good Segment 题意&#xff1a; 有包含n个数的序列a&#xff0c;求能找到最长的区间包含不超过k个不同的元素。 题解&#xff1a; 尺取法&#xff0c;先固定L&#xff0c;然后移动R&#xff0c;R每次移动&#xff0c;当超过k后&#xff0c;L再…