组合数——斐波那契等式#
n∑i=0(n−ii)=fn+1,其中 f 为斐波那契数列。
证法 1:#
n∑i=0(n−ii)=n∑i=0[xi](1+x)n−i=[xn]n∑i=0xn−i(1+x)n−i=[xn]11−x−x2=[xn+1]x1−x−x2=fn+1
由斐波那契数列递推式易证其生成函数式 x1−x−x2。
证法 2:#
考虑组合意义:fn+1 表示选若干个 1 和 2 和为 n 的方案数。
枚举选取的数的个数 i,则接下来要在 i 个数中选 n−i 个数 +1,方案为 (in−i)。
于是 fn+1=n∑i=0(in−i)=n∑i=0(n−ii)。
子集和为 m 倍数问题#
求 1∼n 有多少个子集和为 m 倍数。
参考P10084。
数论函数估计#
试估计:f(n)=∏p≤n,p∈Ppp−1 的大小。
注:下文 log 一般看做 ln,一般把 C 看做常数。
做法 1:#
f(n)=exp(∑p≤n,p∈Pln(1+1p−1))≤exp(∑p≤n,p∈P1p−1)。
有个结论:素数倒数和估计成 loglogn 的常数为 1,即 ∑p≤n,p∈P1p≤loglogn+O(1),证明请查阅链接。
注意到:∑p≤n,p∈P1p−1−1p≤n∑i=21i−1−1i≤1,于是 ∑p≤n,p∈P1p−1≤loglogn+O(1)。
于是 f(n)≤exp(loglog(n)+O(1))=O(logn)。
做法 2:#
注意到 f 的形式和 φ 很像。令 N=∏p≤n,p∈Pp,则 f(n)=Nφ(N)。
考虑有结论:存在常数 C,使得:nφ(n)≤C×loglogn。
又有经典结论:∏p≤n,p∈Pp≤4n−1,证明请查阅链接中的「关于质数积的上界估计」。
于是 f(n)=Nφ(N)≤C×loglogN≤C×loglog4n=O(logn)。
清零(概率期望)#
给定 n,初始 cnt=0。每次扔硬币,正面就 cnt←0,反面就 cnt←cnt+1,期望扔几次能 cnt=n。
做法:设 En 表示 n 时的期望,初始 E0=0。
考虑每次通过 En−1 步到达 cnt=n−1 后会咋样。
写成式子:En=∑k≥1k(En−1+1)2k=2(En−1+1)。于是得出 En=2n+1−2。
喵喵差分#
设 m∈N∗,n 为任意实数。求证:m∑i=0(−1)m−i(mi)(n+i)m=m!,其中不妨定义 00=1。
浓组合味做法#
设 f 是一个 deg=n 的多项式,且 f 的定义域为 [0,n]∩N 。
定义 f 的离散导数 Δf(x)=f(x+1)−f(x)(0≤x≤n−1),也记作 Δ1f(x)。
这时候 Δf(x) 只有 n 个点值,为一个 deg=n−1 的多项式。也就是说每一次离散求导,deg 减少 1。
Δkf(x)=Δ(Δk−1f(x))(k∈N∗,k≤n)。
注意到:Δkf(x)=k∑i=0(−1)k−i(ki)f(x+i)。
考虑代入 k=m,f(x)=xm。则 Δmf(x)=m∑i=0(−1)m−i(mi)(x+i)m。
此时 Δmf(x) 应为一个 deg=0 的常数多项式,也证明了 LHS 的取值与 n 无关,此时只需证明 Δmf(x)=m! 即可。
考虑归纳,设 m 时满足条件,m=0 时显然。考虑 f(x)=xm+1 时的 Δm+1f(x)。
Δm+1f(x)=Δm(f(x+1)−f(x))=Δm(m∑i=0(m+1i)xi)=Δm((m+1)xm+m−1∑i=0(m+1i)xi)。
注意到离散导数的线性型,即 Δk(f(x)+g(x))=Δkf(x)+Δkg(x),Δkcf(x)=cΔkf(x)。
于是 Δm+1f(x)=(m+1)Δm(xm)+Δm(m−1∑i=0(m+1i)xi)。由于后半部分 deg<m,于是 Δm 之后为 0。
代入归纳假设:Δm+1f(x)=(m+1)Δm(xm)=(m+1)!。
代数组合杂交#
由上文,LHS 的取值与 n 无关。代入 n=0:
LHS=m∑i=0(−1)m−i(mi)im=m!m∑i=0(−1)m−iimi!(m−i)!。
注意到斯特林数的通项公式为:{nm}=m∑i=0(−1)m−iini!(m−i)!。
于是 LHS=m!{mm}=m!。
代数推导保平安#
在不知道离散导数相关知识的情况下呢?
m∑i=0(−1)m−i(mi)(n+i)m=m∑i=0(−1)m−i(mi)m∑j=0(mj)nm−jij=m∑j=0(mj)nm−jm∑i=0(−1)m−i(mi)ij=m!m∑j=0(mj)nm−jm∑i=0(−1)m−iiji!(m−i)!=m!m∑j=0(mj)nm−j{jm}
由于斯特林数的性质,当 n<m 时,{nm}=0,{mm}=1。于是 LHS=m!(mm)nm−m=m!。
关于 n 个 [0,1] 的随机变量第 k 小的期望值#
结论:对于 n 个取值范围为 [0,1] 的随机变量 x1,2,⋯,n,其中 k 小值的期望为 kn+1。
暴力微积分#
枚举 k 小值位置,其可能是 n 个中任意一个。然后再枚举 < 这个值的分部情况,有 (n−1k−1) 种方案。
然后枚举 k 小值 x 积分,小于 k 小值部分为 xk−1,大于的部分为 (1−x)n−k,然后对期望有 x 的贡献。
于是 ans=n(n−1k−1)∫10xk−1(1−x)n−kxdx=n(n−1k−1)B(k+1,n−k+1)。
根据贝塔函数的性质,有:B(p,q)=Γ(p)Γ(q)Γ(p+q),Γ(n)=(n−1)!。
于是 ans=n×(n−1)!(k−1)!(n−k)!×k!(n−k)!(n+1)!=kn+1。
组合意义毁天灭地#
不妨考虑引入第 n+1 个随机变量,注意到分布均匀性,且取值是 [0,1]。
所以可以认为第 k 小的变量的期望等于第 n+1 个变量小于等于第 k 小的变量的概率。
那么问题就变为了如何求这个概率,考虑统计方案数。
他们的大小关系一共有 (n+1)! 种,而 n+1 个变量小于等于第 k 个变量的方案数一共有 k×n!。因为第 n+1 个变量一共有 k 个位置可以插入。
所以概率为 kn+1,也就是第 k 小的期望。
小清新概率期望#
初始 s=0,每次操作随机选取一个 [0,1] 内实数 x,s←s+x,求使得 s>1 的期望操作次数。
做法:E(X)=∑k≥0P(X>k),于是转化成求 P(X>k),即 k 次操作后仍然 s≤1 的概率。
设 pn(x) 表示 n 次操作后 s≤x 的概率,则有 p0(x)=1,pn(x)=∫x0pn−1(t) dt。
于是容易归纳证明:pn(x)=1n!xn⇒P(X>k)=pk(1)=1k!。
于是 E(X)=∑k≥01k!=e。
收敛的调和#
求 s=∞∑n=0(−1)nn+1 的值。
做法:考虑 ∫11+xdx=ln(1+x)。
又:∫11+xdx=∫∞∑n=0(−x)ndx=∞∑n=0(−1)nxn+1n+1,其中 −1<x≤1。
带入 x=1 即得:s=ln2。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】