闲话 24.6.29
闲话
鰰这个提交在干啥啊?\(O(\sqrt n \log n)\) 自动机吗?
nb 这是整式递推板子。
推歌:我 正 下 坠 by Evalia feat. 星尘
好听就完了!
推歌:春暁、思索に耽て君を恋ふ by 桶本ガク feat. 初音ミク
有点 yoasobi 风味,也有一些说不上来的熟悉感。
而我正下坠
跌穿地底仍下坠
我将我视为宇宙或蜉蝣
便无需被他人拯救
Gosper 求和法
Gosper-Zeilberger 明天(或以后)就来!
这个技术的前置是离散微积分。
若 \(\Delta g(x) = f(x)\),记 \(\sum_a^{b + 1} f(k)\delta k = \sum_{k = a}^b f(k) = g(x) \big\rvert_a^{b + 1} = g(b + 1) - g(a)\),并记离散积分 \(\sum f(k)\delta k = g(k) + C\)。没错,这也要 \(+C\)。
和求微分相对求积分要简单一样,求离散积分相对求差分而言要更难。这一点也可以从求和比求离散积分简单,但 Binomial Sums 问题难以有封闭形式的现状看出。那么,是否存在一个方法,可以帮助我们解决一部分求离散积分问题呢?
R. W. Gosper 提出了一种方法,可以在 \(f(k), g(k)\) 都属于超几何函数某一项时由 \(f(k)\) 求出 \(g(k)\),或判断其不存在。我们记超几何函数 \(F\) 的第 \(k\) 项为
这是一个关于 \(k\) 的函数/数列。大多数时候,存在这样的 \(c, A_1, \dots, A_m, B_1, \dots, B_n\) 使得断言
成立。若成立,我们称函数 \(f(k) = F(a_1, \dots, a_p ;b_1, \dots, b_q;z)_k\) 是可超几何求和的。接下来介绍的 Gosper 求和法可以找到这些未知的常数,或证明它们不存在。
一般地,我们称 \(t(k)\) 为一个超几何项,当且仅当 \(t(k + 1) / t(k)\) 为一个关于 \(k\) 的有理分式,且不恒为 \(0\)。这要求就导出了 \(\dfrac{a_1^{\overline k} \cdots a_m^{\overline k}}{b_1^{\overline k} \cdots b_n^{\overline k}} \dfrac{z^k}{k!}\) 的形式。然而,我们希望 \(t(k)\) 在 \(k\) 为负整数时和分母上存在一个或多个 \(b\) 取 \(0\) 时都有意义,因此 \(t(k)\) 的一般形式还要乘以某个非零常数以及一个 \(0\) 的幂,从而把分母上的 \(0\) 消掉。
假设我们现在已经获得了一个超几何项函数 \(t(k)\),希望通过 Gosper 方法找到 \(\sum t(k)\delta k\) 或证明其不满足超几何项形式,我们要分两步走。
第一步:分解
构造三个多项式 \(p(x), q(x), r(x)\),满足
- \(\dfrac{t(k + 1)}{t(k)} = \dfrac{p(k + 1)}{p(k)} \dfrac{q(k)}{r(k + 1)}\)
- 若 \(q(\alpha) = 0, r(\beta) = 0\),则 \(\beta - \alpha\) 不为正整数。
容易找到这三个多项式。我们只需要执行以下的程序:
- 令 \(p(k) = 1, \dfrac{q(k)}{r(k + 1)} = \dfrac{t(k + 1)}{t(k)}\)。由于 RHS 为一个有理分式,一定存在这样的多项式 \(q(k), r(k + 1)\)。
- 分解 \(q(k)\) 和 \(r(k)\)。分解得到 \(q(k) = (k - \alpha_1)\cdots(k - \alpha_m) z\),\(r(k) = (k - 1 - \beta_1)\cdots(k - 1 - \beta_n) k\),随后检查条件 \(2.\) 是否满足。
- 如果满足,结束程序。
- 如果不满足,不妨令 \(\alpha_1, \beta_1\) 破坏了这条件,那么知道 \(\beta_1 + 1 - \alpha_1 = N\) 为某正整数,则 \(N \ge 1\)。随后执行\[\begin{aligned} &p(k)\leftarrow p(k)(k - \alpha_1 - 1)\cdots(k - \beta_1) \\ &q(k)\leftarrow q(k) / (k - \alpha_1) \\ &r(k)\leftarrow r(k) / (k - \beta_1 - 1) \end{aligned}\]容易知道\[\frac{p(k + 1)(k - \alpha_1)(k - \alpha_1 - 1)\cdots(k - \beta_1 + 1)}{p(k)(k - \alpha_1 - 1)\cdots(k - \beta_1 + 1)(k - \beta_1)} \frac{q(k)}{k - \alpha_1} \frac{k - \beta_1}{r(k + 1)} = \dfrac{p(k + 1)}{p(k)} \dfrac{q(k)}{r(k + 1)} \]满足条件。随后回到第 \(2.\) 步。
易错:上面求出的 \(r\) 应当为 \(r(k + 1)\),但下面使用的均为 \(r(k)\),需要做好区分。
第二步:尝试
假设我们要寻找的离散积分为 \(T(k)\),即 \(t(k) = T(k + 1) - T(k)\)。
Gosper 注意到,存在一个“神秘函数” \(s(k)\),使得 \(T(k) = \dfrac{r(k)s(k)t(k)}{p(k)}\) 成立。带入上式得到
条件 \(1.\) 变形得到 \(\dfrac{r(k + 1)t(k + 1)}{p(k + 1)} = \dfrac{t(k)q(k)}{p(k)}\),带入得到
化简得到 \(p(k) = q(k)s(k + 1) - r(k)s(k)\)。如果 \(s(k)\) 存在,我们就能找到 \(T(k)\)。反之,不存在合法的 \(T(k)\)。
我们假定 \(T(k)\) 是超几何项,因此 \(T(k + 1) / T(k)\) 为有理分式。因此,\(\dfrac{T(k)}{ T(k + 1) - T(k)} =\dfrac{r(k)s(k)}{p(k)}\) 是有理分式。因此 \(s(k)\) 是有理分式。可以证明 \(s(k)\) 是多项式。
pf.
反之,设 \(s(k) = \dfrac{f(k)}{g(k)}\),并令 \(f(k)\) 与 \(g(k)\) 没有公因子。这样带入化简后的式子得到
取最大的整数 \(N\) 使得 \(\exists\beta \in \mathbb C, g(\beta) = 0 \ \land \ g(\beta - N + 1) = 0\)。\(N\) 必定存在,由于 \(N = 1\) 成立。
向上式带入 \(k = \beta\) 和 \(k = \beta - N\)(LHS 的根,\(g(\beta) = g((\beta - N) + 1) = 0\))得到
由于 \(\beta\) 和 \(\beta - N + 1\) 为 \(g(k)\) 的根,它们定不为 \(f(k)\) 的根,因此 \(f(\beta) \neq 0, f(\beta - N - 1) \neq 0\)。
由于 \(g(\beta + 1) = 0\) 时存在 \(N + 1\) 满足 \(\exists \beta + 1 \in \mathbb C, g(\beta + 1) = 0 \ \land \ g((\beta + 1) - (N + 1) + 1) = 0\),与 \(N\) 的最大性矛盾,\(g(\beta + 1) \neq 0\)。同理有 \(g(\beta - N) \neq 0\)。
因此仅有可能 \(r(\beta) = q(\beta + N)\),而这与条件 \(2.\) 矛盾。故 \(s(k)\) 为多项式。\(\square\)
接下来只需要找到多项式 \(s(k)\),或说明其不存在。如果确定了 \(s(k)\) 的度数 \(d\),那么直接设 \(d + 1\) 个变量,并比对 \(p(k) = q(k)s(k + 1) - r(k)s(k)\) 两侧每个 \(k^i\) 的系数,列出线性方程组,解其即可。那么如何确定 \(\text{deg }s(k)\) 呢?
重写上式为 \(2p(k) = Q(k) \left(s(k + 1) + s(k)\right) + R(k) \left(s(k + 1) - s(k)\right)\),其中 \(Q(k) = q(k) - r(k), R(k) = q(k) + r(k)\)。若 \(s(k)\) 的度数为 \(d\),并令 \(s(k) = \alpha_0 + \alpha_1 k + \cdots + \alpha_d k^d\),则(令 \(f(k) = 0\) 的度数为 \(-1\))
若 \(\text{deg }Q \ge \text{deg }R\),则 RHS 的度数为 \(\text{deg }Q + d\) 等于 LHS 的度数 \(\text{deg }p\),得到 \(d = \text{deg }p - \text{deg }Q\)。
反之,令 \(\text{deg }Q < \text{deg }R = d'\),并令 \(Q = \lambda' k^{d' - 1} + \cdots\),\(R = \lambda k^{d'} + \cdots(\lambda \neq 0)\),则有 RHS \(= \alpha_d(2\lambda' + \lambda d) k^{d + d' - 1} + \cdots\)。下面分类讨论。第一种可能是 \(2\lambda' + \lambda d \neq 0\),此时 \(d = \text{deg }p - \text{deg }R + 1\)。第二种可能是其 \(=0\),则 \(d > \text{deg }p - \text{deg }R + 1\)。但由于解得 \(d = -2\lambda' / \lambda\),只有这值为整数且在范围内时才需要验证。
综上,我们至多只需要检验两个 \(d\)(即 \(\text{deg }Q < \text{deg }R\) 时的 \(d = \text{deg }p - \text{deg }R + 1\) 或 \(-2\lambda' / \lambda\))。
第二步要执行的程序也变得清晰了:
- 计算 \(Q(k) = q(k) - r(k), R(k) = q(k) + r(k)\)。
- 若 \(\text{deg }Q \ge \text{deg }R\),检验 \(d = \text{deg }p - \text{deg }Q\)。
- 反之,令 \(\text{deg }R = d'\),记 \(\lambda = [k^{d'}]R(k), \lambda' = [k^{d'-1}] Q(k)\)。
若 \(2\lambda ' + \lambda (\text{deg }p - \text{deg }R + 1) \neq 0\),检验 \(d = \text{deg }p - \text{deg }R + 1\);若 \(-2\lambda' / \lambda\) 为整数且 \(>\text{deg }p - \text{deg }R + 1\),检验 \(d = -2\lambda' / \lambda\)。
- 对需要检验的 \(d\),取 \(d + 1\) 个变量 \(\alpha_0, \dots, \alpha_d\) 并令 \(s(k) = \sum_{i = 0}^d \alpha_i k^i\),展开 \(p(k) = q(k)s(k + 1) - r(k)s(k)\) 两侧比对系数,列出方程组求解。
- 若存在解,则 \(s(k)\) 存在,这样得到的 \(T(k)\) 即为 \(t(k)\) 的原函数。反之,\(t(k)\) 不可超几何求和。
例题:
朝圣道(碎片)
计算下式的封闭形式:
\[\frac{1}{2} \sum_{i = 0}^{n - 1} \binom{2i}{i} 4^{-i} \]
彩蛋
APJifengc 14:22:22
我的式子
1/2 \sum_{i=0}^{n-1} \binom{2i}{i] / 4^i
哈哈
Lucas拆一下
可以数位 DP!
太厉害了,开始写了!
joke3579 14:23:36
gosper秒了
APJifengc 14:24:04
我听不懂。
joke3579 14:24:13
没关系
我要学习gosper求和法
您这个就是例题了!
sol
最简单的一集。
要求的就是 \(\sum_0^n \binom{2k}{k} 4^{-k}\delta k\),那么
初始令 \(p(k) = 1, q(k) = 2k + 1, r(k) = 2k\),知道 \(q\) 的根只有 \(-1/2\),\(r\) 的根只有 \(0\),满足条件 \(2.\),第一步结束。
则 \(Q(k) = q(k)- r(k) = 1\),\(R(k) = q(k) + r(k) = 4k + 1\)。由于 \(\text{deg } Q = 0 < 1 = \text{deg } R\),进入分支 \(2.\)。此时 \(d' = \text{deg } R = 1\),\(\lambda = R[d'] = 4, \lambda' = Q[d'-1] = 1\)。
第一种可能为 \(d = \text{deg } p - \text{deg } R + 1 = 0\),此时 \(2\lambda' + \lambda d = 2 \neq 0\),合法。此时令 \(s(k) = \alpha_0\),我们有 \(1 = (2k + 1) \alpha_0 - 2k \alpha_0\),得到 \(\alpha_0 = 1\),\(s(k) = 1\)。
第二种可能为 \(d = -2\lambda' / \lambda = -1/2\) 不为正整数,舍去。
因此 \(s(k) = 1\),\(T(k) = \frac{(2k)(1) 4^{-k} \binom{2k}{k}}{1} = \dfrac{2k}{4^k}\dbinom{2k}{k}\)。
Reference:
[1]: Ronald L. Graham et al., Concrete Mathematics.
以下是博客签名,与正文无关。
请按如下方式引用此页:
本文作者 joke3579,原文链接:https://www.cnblogs.com/joke3579/p/-/chitchat240629。
遵循 CC BY-NC-SA 4.0 协议。
请读者尽量不要在评论区发布与博客内文完全无关的评论,视情况可能删除。