闲话 25.7.30

闲话

怎么又是一个多月没写闲话呢????

最近在打 魔法少女的魔女审判
我本来不太打视觉小说的,但因为这个有探案/解谜要素(btw 我没打过逆转裁判或弹丸论破)就玩了玩
真好玩!
大家都去玩玩!

推歌:
单行恶魔 by Evalia ft. 乐正绫AI:三体同人曲,我个人不太喜欢 溃败成尘/局中的兵 的衔接,但剩下的部分确实仙曲!都去听!
HANA by 合目 et al.:因为是自制歌姬,性能上多少有点不足,但和歌曲配合的很好!
跑调 by 醍醐糊 ft. 诗岸:好听!
1+1= by 合目 ft. 诗岸:和上面两首听感相似,好听!
独行都市 by 迁梦 et al.:好听,舒缓(?)!
旋转 by 雨天决行__ et al.:摇滚!爽!

小周严选!

你们数论都是这样的吗?

没啥可写的了,突然想起来之前有一个筛子(?)题的引理还没证过。写一下题解!

LCM Challenge

给定 \(n, p\),你需要计算 \(\mathrm{lcm}(1, \dots, n) \bmod p\)

\(n, p \le 10^{10}\)

source: 2025牛客暑期多校训练营1 D

根据 OEIS 页面,我们找到了答案等于

\[\exp \sum_{k = 1}^n \sum_{d\mid k} \mu(d) \log(k / d) = \prod_{k = 1}^n \prod_{d\mid k} \left(k/d\right)^{\mu(d)} = \prod_{d = 1}^n \left(\lfloor n/d\rfloor!\right)^{\mu(d)} \]

因此使用任意模数快速阶乘算法 + 杜教筛即可通过数论分块在 \(O(\sqrt n \log n + n^{3/4})\) 的复杂度内计算答案。这里指数是因为快速阶乘算法可以获得全部 \(\sqrt n, 2\sqrt n, \dots, n\) 处的阶乘值,我们只需要计算出所有 \(< B\) 的阶乘值,而需要的 \(\ge B\) 的点值只有 \(n / B\) 个,我们直接暴力就能做到 \(O(B + n \sqrt n / B)\),取 \(B = O(n^{3/4})\) 即可。当然这里可以卡卡常,例如多跑几遍快速阶乘算法,让已经获得的阶乘值更加密集,从而减小常数。(原题使用了快速阶乘+一个怪异的 min25 筛,其实没有必要做那么麻烦)

但是,怎么证明上面的式子呢?

我们记得有一个乘积版本的莫比乌斯反演。需要用到的形式如下:

\[f(n) = \prod_{k = 1}^{n} g(\lfloor n/k\rfloor)\quad \Longrightarrow \quad g(n) = \prod_{k = 1}^n f(\lfloor n / k \rfloor)^{\mu(k)} \]

证明:

\[\begin{aligned} & \prod_{k = 1}^n f(\lfloor n / k \rfloor)^{\mu(k)} \\ = \ & \prod_{k = 1}^n \prod_{i = 1}^{\lfloor n/k\rfloor} g(\lfloor n / ik \rfloor)^{\mu(k)} \\ = \ & \prod_{T = 1}^n \prod_{k \mid T} g(\lfloor n / T \rfloor)^{\mu(k)} \\ = \ & \prod_{T = 1}^n g(\lfloor n / T \rfloor)^{[T = 1]} \\ = \ & g(n) \end{aligned} \]

倒数第二个等号是莫比乌斯反演。\(\square\)

那么我们只用证明

\[n! = \prod_{k = 1}^n \mathrm{lcm}(1, \dots, \lfloor n / k\rfloor) \]

这个的证明只用考虑等号两边唯一因子分解中质数 \(p\) 的指数是否相等。

显然地,对 \(\mathrm{lcm}(1, \dots, \lfloor n / k\rfloor)\)\(p\) 的指数必然是满足 \(p^c \le \lfloor n / k\rfloor < p^{c + 1}\)\(c\)。处理一下整除也就是 \(n/p^{c+1} < k \le n/p^c\)。我们不枚举 \(k\),而是反过来枚举 \(c\),知道 \(c\) 对应 \(\lfloor n / p^c \rfloor - \lfloor n / p^{c + 1}\rfloor\) 个可能的 \(k\),而每个这样的 \(k\) 对指数的贡献都是 \(k\),也就是说

\[\nu_p(\mathrm{RHS}) = \sum_c c\left(\left\lfloor \dfrac{n}{p^c} \right\rfloor - \left\lfloor \dfrac{n}{p^{c + 1}}\right\rfloor\right) \]

使用 Abel 求和法,并注意到 \(1,\dots,n\)\(\nu_p(k) \ge c\) 的数恰有 \(\lfloor n / p^c \rfloor\) 个,就得到

\[\nu_p(\mathrm{RHS}) = \sum_c \left\lfloor \dfrac{n}{p^c} \right\rfloor = \nu_p(n!) \]

由于 \(p\) 的任意性,我们完成了证明。

upd: jjdw 的(non-trivial)两行证明

注解:根据上面对 \(p\) 的指数的推导,\(\nu_p(L(n)) = \lfloor \log_p n \rfloor\),从而 \(\log L(n) = \sum_p \log p \lfloor \log_p n \rfloor\)。第一行的最后定义了函数 \(\Lambda(n)\),注意到其只在 \(n=p^k\) 的情况下取值 \(\log p\),其余值均为 \(0\),这是下取整的差的性质。并注意到其为 \(\mu * \log\),其中 \(*\) 为 Dirichlet 卷积。这是由于 \(\Lambda * \mathrm I = \log\),以及 Dirichlet 卷积的结合律。结合律是显然的,我们可以将 \((f * g * h)(n)\) 写作 \(\sum_{abc = n} f(a)g(b)h(c)\)。随后由 Dirichlet 双曲线法:\((f * g)(n) = \sum_{k = 1}^n f(k) Sg(\lfloor n / k\rfloor)\),就有第二行的第二个等号。

现在它是 trivial 的了。

附笑话一则:
数学界的一个常见笑话是说“平凡”与“已证明”是同义词——也就是说,任何定理一旦被证明为真,就可以被视为“平凡”。
两个数学家在讨论一个定理:第一个数学家说这个定理是“平凡的”。应另一位的要求解释,他随后进行了二十分钟的讲解。解释结束时,第二个数学家同意这个定理是平凡的。
这种幽默反映了数学研究中一个有趣的现象。当你完全理解了某个概念后,它往往会变得"显而易见",以至于忘记了自己曾经为理解它而花费的精力。

upd2: 5k 的 minmax 容斥证明
\5k/\5k/\5k/\5k/

posted @ 2025-07-30 19:34  joke3579  阅读(153)  评论(2)    收藏  举报