首页 > 其他分享 >A Day With: Mathematics

A Day With: Mathematics

时间:2023-01-28 18:24:06浏览次数:55  
标签:那么 frac sum 反演 Mathematics 2n aligned Day

image

闲话:

最近看 npesta 看的有点多,于是标题起的这个。

为什么一个非 GD 人会这么关注 GD 啊。

被 Limbo 震撼到了,尤其是最后的钥匙段,我一直盯着钥匙看了十几次也没看成功一次,GD 人太可怕。


决定在我还有一定理智的时候把我一直没看明白的东西写下来。

虽然还是不理解吧。

我是萌新,不要 D 我 qwq

拉格朗日反演

我们记 \(F(G(x)) = x\) 的两个多项式 \(F(x)\) 与 \(G(x)\) 为复合逆。

首先有一个性质:若 \(F(G(x)) = x\),那么 \(G(F(x)) = x\)。

我问 jjdw 这东西咋证明的,我忘了当时 jjdw 有没有给我证明了,反正我不会证。

拉格朗日反演:如果 \(F(x)\) 与 \(G(x)\) 互为复合逆,且 \(F(x)\) 和 \(G(x)\) 常数项为 \(0\),一次项系数不为 \(0\),那么:

\[[x^n] F(x) = \frac{1}{n}[x^{n - 1}] \left(\frac{x}{G(x)}\right)^n \]

证明看不懂,咕了。

还有个扩展拉格朗日反演:$$[x^n] H(F(x)) = \frac{1}{n}[x^{n - 1}] H'(x)\left(\frac{x}{G(x)}\right)^n$$

卡特兰数

众所周知卡特兰数生成函数 \(C(x)=xC(x)^2 + 1\)。我们尝试凑 \(x\),首先把常数项去掉,那么设 \(F(x)=C(x) - 1\),那么就有 \(F(x) = x(F(x) + 1) ^ 2\),\(\frac{F(x)}{(F(x)+1)^2}=x\),那么 \(G(x)=\frac{x}{(x+1)^2}\)。

根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}](x+1)^{2n}=\frac{1}{n}\binom{2n}{n-1}=\frac{1}{n+1}\binom{2n}{n}\)。

大朋友和多叉树

求 \(n\) 个节点的无标号有根树的数量,满足非叶子节点的度数属于集合 \(A\),儿子有顺序。

考虑直接写出答案的生成函数:\(F(x)=\sum_{i \in A} F(x)^i + x\),\(F(x)\) 没有常数项,那么可以直接凑出 \(F(x) - \sum_{i \in A} F(x)^i = x\),那么 \(G(x) = x - \sum_{i\in A}x^i\)。

根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}]\left(\frac{x}{G(x)}\right)^n\),多项式求逆加多项式快速幂即可。

[ABC222H] Beautiful Binary Tree

理性偷税。

首先不难转化题意为求满足相邻两个点的数不全为 \(0\),且根节点为 \(1\) 的二叉树数量。

我们设 \(f_{0/1,n}\) 为根节点为 \(0/1\) 的 \(n\) 个节点的二叉树的数量,那么有:

\[f_{0,n} = 2 f_{1, n} + \sum_{i=0}^n f_{1,i} f_{1, n-i}, f_{0, 1} = 0 \]

\[f_{1,n} = 2 (f_{0, n - 1} + f_{1, n - 1}) + \sum_{i=0}^{n-1} (f_{0, i} + f_{1,i}) (f_{0, n-1-i} + f_{1, n-1-i}), f_{1, 1} = 1 \]

写成生成函数:

\[F_0(x) = 2F_1(x) + F_1(x)^2 \]

\[F_1(x) = x(1 + 2(F_0(x) + F_1(x)) + (F_0(x) + F_1(x)) ^ 2) = x(F_0(x) + F_1(x) + 1) ^ 2 \]

直接把 \(F_0(x)\) 代进去:

\[F_1(x) = x(F_1(x)^2 + 3F_1(x) + 1)^2 \]

然后找复合逆:

\[x = \frac{F_1(x)}{(F_1(x)^2 + 3F_1(x) + 1)^2} \]

\[G(x) = \frac{x}{(x^2+3x+1)^2} \]

那么就可以直接套拉格朗日反演了:

\[\begin{aligned} [x^n]F_1(x) &= \frac{1}{n} [x^{n - 1}] (x^2+3x+1)^{2n}\\ &= \frac{1}{n}\sum_{i=0}^{2n}\binom{2n}{i}[x^{n-1}]x^{2i}(3x+1)^{2n-i}\\ &= \frac{1}{n}\sum_{i=0}^{2n}\binom{2n}{i}\binom{2n-i}{n-2i-1}3^{n-2i-1}\\ \end{aligned} \]

复杂度 \(O(n)\)。

好了知道了 joke 你可以不用说了。

概率生成函数

不知道有没有用,反正我是闲的。

定义

定义一个非负整数随机变量 \(X\) 的概率生成函数 \(F_X(x)\) 为 \(F_X(x)=\sum_{i\ge 0} P(X=i) x^i\)。

首先众所周知 \(\sum_{i\ge 0} P(X=i) = 1\),那么也就是说 \(F_X(1)=1\)。

期望值

\[\begin{aligned} E(X) &= \sum_{i \ge 0} i P(X=i)\\ &= \sum_{i \ge 0} P(X=i) i 1^{i-1}\\ &= F_X'(1) \end{aligned} \]

那么就是说,期望值就是生成函数的导数。

根据这个我们还可以推出另一个结论:\(E(X^{\underline{k}})=F^{(k)}_ X(1)\)。

方差

\[\begin{aligned} D(X) &= E(X^2) - E(X)^2\\ &= E(X^{\underline 2}) + E(X^{\underline 1}) - E(X)^2\\ &= F_X''(1) + F_X'(1) - F_X'(1)^2 \end{aligned} \]

这给我们提供了一种不需要求概率就能计算期望或方差的方法。

卷积

没啥意思,就 \(F_{X+Y}(x) = F_X(x) F_Y(x)\),原因显然。

[CTSC2006]歌唱王国

题意:给定一个长为 \(n\) 的序列 \(A\),有一个序列 \(B\),初始为空,每次随机添加一个 \([1,m]\) 的数,当 \(B\) 中出现 \(A\) 序列时停止,问期望多少步结束?

我们设 \(f_i\) 为在第 \(i\) 步结束的概率,其概率生成函数为 \(F(x)\);

令 \(g_i\) 为第 \(i\) 步时还没结束的概率,其普通生成函数为 \(G(x)\)。

首先,我们考虑给仍未结束的序列加入单独的一个数,那么必然有 \(f_i + g_i = g_{i - 1}\),并且 \(f_0 = 0, g_0 = 1\),于是可以得到生成函数的关系 \(F(x) + G(x) = 1 + xG(x)\)。

两边求导,得到 \(F'(x) + G'(x) = G(x) + xG'(x)\)。

我们要求的期望值就是 \(F'(1)\),于是代入 \(x=1\),得到 \(F'(1) = G(1)\),那么我们想办法求 \(G(1)\)。

考虑给仍未结束的序列加入整个 \(A\) 序列。那么加入完成之后一定会结束,但是有可能提前结束,因为可能加入的一段前缀是 border,正好提前组成了 \(A\) 序列。那么可以写出以下式子:

\[G(x) \left(\frac{1}{m}x\right)^n = \sum_{i=1}^n a_i F(x) \left(\frac{1}{m}x\right)^{n - i} \]

\(a_i\) 表示长度为 \(i\) 的前缀是否为 border。

那么我们代入 \(x=1\),就有 \(G(1) m^{-n} = \sum_{i=1}^n a_i m^{i-n}\),即 \(G(1) = \sum_{i=1}^n a_i m^i\)。

那么期望值就是 \(G(1) = \sum_{i=1}^n a_i m^i\)。

magic.

还有几个例题咕了。

感觉概率生成函数能解决的问题都和无穷过程求结束时间的期望值,所以这些题能不能用鞅与停时定理来做?

待考察。

好了今天的理智值用光了,大家再见。

标签:那么,frac,sum,反演,Mathematics,2n,aligned,Day
From: https://www.cnblogs.com/apjifengc/p/17070387.html

相关文章

  • 「WC-2023」学习笔记(Day1&2)
    尼玛在游记里立flag是吧。1月必更新是吧。寒假作业都写不完了!!!!!这篇四舍五入就是1月学习记录了。1月剩下的杂题可能放2月去写。嗯也可能2月就退役了。退役了就没......
  • Day01
    Markdown初学标题空格+标题名字一级标题空格+标题名字二级标题同理可书写至六级标题字体Hello,word!前后加两个星号变成粗体Hello,word!前后加一个星号变成......
  • 算法刷题 Day 22 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.
    今日内容:二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点详细布置235.二叉搜索树的最近公共祖先相对于二叉树的最近公共祖......
  • 刷刷刷 Day 25 | 17. 电话号码的字母组合
    17.电话号码的字母组合LeetCode题目要求给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话......
  • 算法刷题 Day 21 | 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树
    今日内容530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236.二叉树的最近公共祖先  详细布置530.二叉搜索树的最小绝对差需要领悟一下二叉树遍历......
  • 数学建模学习——Day02
    一、Matlab基础知识入门1.每行语句后面加上英文分号,表示不显示运行结果,分号也表示换行2.多行注释:选中要注释的语句,CTRL+R3.取消注释:选中要取消注释的语句,CTRL+T4.cle......
  • 刷刷刷 Day 25 | 216. 组合总和 III
    216.组合总和IIILeetCode题目要求找出所有相加之和为 n的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回所有可能的有效组合的列表......
  • 刷刷刷 Day 24 | 77. 组合
    77.组合LeetCode题目要求给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例输入:n=4,k=2输出:[[2,4],[......
  • day11-实现Spring底层机制-01
    实现Spring底层机制-01主要实现:初始化IOC容器+依赖注入+BeanPostProcessor机制+AOP前面我们实际上已经使用代码简单实现了:SpringXML注入bean(Spring基本介绍02)Sp......
  • C++Day13 tinyxml2解析rss文件
    一、任务与思路使用tinyxml解析rss文件,使用std::regex(正则表达式)去除html标签,并生成一个pagelib.txt,格式如下<doc><docid>1</docid><title>...</title><......