首页 > 技术文章 > [瞎搞]Beta 函数闲谈

juruoajh 2021-09-01 19:57 原文

ajthreac 又来学没用的东西了
屑 ajthreac 并没有系统地学习过数学分析,仅仅是因为看到有题可以用它优化而学习,以下的一些证明很有可能是瞎扯
Beta 函数是与第二类欧拉积分 Gamma 函数齐名的第一类欧拉积分。
Beta 函数的定义:\(\Beta(p,q)=\int_0^1x^{p-1}(1-x)^{q-1}\text{d}x\),显然 \(\Beta(p,q)=\Beta(q,p)\)
它拥有一个美妙的性质:\(\Beta(p,q)=\dfrac{\Gamma(p)\Gamma(q)}{\Gamma(p+q)}\)
证明很简单,代换一下就出来了:

\[\begin{aligned} \Gamma(p)\Gamma(q)&=\int_0^{+\infty}\text{e}^{-s}s^{p-1}\text{d}s\int_0^{+\infty}\text{e}^{-t}t^{q-1}\text{d}t\\ &=4\int_0^{+\infty}\text{e}^{-x^2}x^{2p-1}\text{d}x\int_0^{+\infty}\text{e}^{-y^2}y^{2q-1}\text{d}y\\ &=4\int_0^{+\infty}\int_0^{+\infty}\text{e}^{-(x^2+y^2)}x^{2p-1}y^{2q-1}\text{d}x\text{d}y\\ &=4\int_0^{+\infty}\text{e}^{-\rho^2}\rho^{2(p+q)-1}\text{d}\rho\int_0^{\frac{\pi}{2}}\cos^{2p-1}\theta\sin^{2q-1}\theta\text{d}\theta\\ &=\int_0^{+\infty}\text{e}^{-t}t^{p+q-1}\text{d}t\int_0^1x^{p-1}(1-x)^{q-1}\text{d}x\\ &=\Gamma(p+q)\Beta(p,q) \end{aligned} \]

先把 \(s,t\) 换成 \(x^2,y^2\),然后对 \(x,y\) 进行极坐标代换,最后把 \(\rho^2,\cos^2\theta\) 换成 \(t,x\)
那么由于当 \(p,q\) 为正整数时 \(\Gamma\) 函数是阶乘,所以它的特殊情况 \(\Beta(p,q)=\dfrac{(p-1)!(q-1)!}{(p+q-1)!}\) 可能会用于推导一些美妙的式子。
例题:CF1153F。
一些有趣的题目中提到了这题的常规 dp 做法,可以先看看那里是怎么做的。(那篇博客暂时没有发出来)
首先 \([0,1)\) 上一个点 \(x\) 被随机线段覆盖的概率显然是 \(1-x^2-(1-x)^2=2x(1-x)\)
然后枚举线段条数就得到被不少于 \(k\) 条线段覆盖的概率 \(\sum\limits_{i=k}^n\dbinom{n}{i}[2x(1-x)]^i[1-2x(1-x)]^{n-i}\)
那么根据定义最终的期望为:

\[\begin{aligned} &\int_0^1\sum_{i=k}^n\binom{n}{i}[2x(1-x)]^i[1-2x(1-x)]^{n-i}\text{d}x\\ =&\sum_{i=k}^n\binom{n}{i}\sum_{j=0}^{n-i}\binom{n-i}{j}(-1)^j\int_0^1[2x(1-x)]^i[2x(1-x)]^j\text{d}x\\ =&\sum_{i=k}^n\sum_{j=0}^{n-i}\binom{n}{i}\binom{n-i}{j}(-1)^j2^{i+j}\Beta(i+j+1,i+j+1)\\ \end{aligned} \]

然后对组合数作一下变换 \(\dbinom{n}{i}\dbinom{n-i}{j}=\dbinom{n}{i+j}\dbinom{i+j}{j}\) 就可以直接对 \(i+j\) 换元了。

\[\sum_{i=k}^n\binom{n}{i}2^i\Beta(i+1,i+1)\sum_{j=0}^{i-k}(-1)^j\binom{i}{j} \]

然后到这暴力的读者已经可以展开 \(\Beta\) 快乐卷积了,不过记性好的读者可能想起来同行二项式系数的交错和 \(\sum\limits_{j=0}^{i-k}(-1)^j\dbinom{i}{j}=(-1)^{i-k}\dbinom{i-1}{i-k}\)
所以最终我们就可以 \(O(n)\) 求解 \(\sum\limits_{i=k}^n\dbinom{n}{i}\dbinom{i-1}{i-k}(-1)^{i-k}2^i\Beta(i+1,i+1)\) 了!足足碾掉了 std 一个 \(n\) 并且不像卷积做法受到模数的限制!

通过上面这题的推导我们发现 Beta 函数这种看起来和 OI 毫不相干的东西也有可能在某些题目上展现惊人的作用,毒瘤出题人可以尝试利用

推荐阅读