函数与表达式的反演变换

本文介绍了几种不同的反演变换方法,包括莫比乌斯反演、二项式反演、单位根反演和快速沃尔什变换等,通过具体的例题和推导过程展示了这些反演技巧在解决数论问题中的应用。文章适合对数论和算法有一定了解的读者,旨在帮助读者理解和掌握反演技术。
摘要由CSDN通过智能技术生成

下面提到的所有知识不一定同属一个范畴,但是它们的思想和作用相似,所以将其归为一篇文章。


莫比乌斯反演

请先学习狄利克雷卷积,否则您会一脸懵逼。

一般式:
F ( n ) = ∑ d ∣ n G ( d ) → G ( n ) = ∑ d ∣ n μ ( n d ) F ( d ) F ( n ) = ∑ n ∣ d G ( d ) → G ( n ) = ∑ n ∣ d μ ( d n ) F ( d ) \begin{aligned} F(n) = \sum_{d | n} G(d) \rightarrow G(n) = \sum_{d | n} \mu(\frac{n}{d}) F(d) \\ F(n) = \sum_{n | d} G(d) \rightarrow G(n) = \sum_{n | d} \mu(\frac{d}{n}) F(d) \end{aligned} F(n)=dnG(d)G(n)=dnμ(dn)F(d)F(n)=ndG(d)G(n)=ndμ(nd)F(d)

证明可以考虑下面恒等式的第一条。

然后再放一些有助于反演的恒等式:(其中 ∗ * 指狄利克雷卷积, ϵ ( n ) \epsilon(n) ϵ(n) 表示 [ n = 1 ] [n = 1] [n=1]
μ ∗ 1 = ϵ φ ∗ 1 = i d μ ∗ i d = μ ∗ 1 ∗ φ = ϵ ∗ φ = φ φ ( n ) = ∑ i = 1 n ϵ ( gcd ⁡ ( n , i ) ) φ ( n m ) = φ ( n ) φ ( m ) gcd ⁡ ( n , m ) φ ( gcd ⁡ ( n , m ) ) ∑ i = 1 n ∑ j = 1 n ϵ ( gcd ⁡ ( i , j ) ) = 2 ⋅ ( ∑ i = 1 n φ ( i ) ) − 1 ∑ d ∣ i j 1 = ∑ x ∣ i ∑ y ∣ j ϵ ( gcd ⁡ ( x , y ) ) ∑ d ∣ i j k 1 = ∑ x ∣ i ∑ y ∣ j ∑ z ∣ k ϵ ( gcd ⁡ ( x , y ) ) ϵ ( gcd ⁡ ( y , z ) ) ϵ ( gcd ⁡ ( x , z ) ) ⋯ ⋯ \begin{aligned} &\mu * 1 = \epsilon \\ & \varphi * 1 = id \\ & \mu * id = \mu * 1 * \varphi = \epsilon * \varphi = \varphi \\ &\varphi(n) = \sum_{i = 1}^n \epsilon(\gcd(n, i)) \\ &\varphi(nm) = \frac{\varphi(n)\varphi(m)\gcd(n, m)}{\varphi(\gcd(n, m))} \\ &\sum_{i=1}^n\sum_{j = 1}^n \epsilon(\gcd(i, j)) = 2 \cdot (\sum_{i = 1}^n\varphi(i)) - 1 \\ & \sum_{d | ij} 1 = \sum_{x|i} \sum_{y|j} \epsilon(\gcd(x, y)) \\ & \sum_{d | ijk} 1 = \sum_{x|i} \sum_{y|j} \sum_{z|k} \epsilon(\gcd(x, y))\epsilon(\gcd(y, z))\epsilon(\gcd(x, z)) \\ &\cdots\cdots \end{aligned} μ1=ϵφ1=idμid=μ1φ=ϵφ=φφ(n)=i=1nϵ(gcd(n,i))φ(nm)=φ(gcd(n,m))φ(n)φ(m)gcd(n,m)i=1nj=1nϵ(gcd(i,j))=2(i=1nφ(i))1dij1=xiyjϵ(gcd(x,y))dijk1=xiyjzkϵ(gcd(x,y))ϵ(gcd(y,z))ϵ(gcd(x,z))

推完式子之后,可以考虑用一些数论筛法预处理某些项,或是用整除分块求值。


拿一道例题来讲解吧。

一共 T T T 组询问 ( T ≤ 1 0 4 ) (T \le 10^4) (T104),给定常数 K K K,每次询问单独给定 N N N,满足 N ≤ 1 0 7 N \le 10^7 N107,求出:
∑ i = 1 N ∑ j = 1 N ( i + j ) K gcd ⁡ ( i , j ) μ 2 ( gcd ⁡ ( i , j ) )   (   m o d   2 32 ) \sum_{i = 1}^N\sum_{j = 1}^N(i + j)^K \gcd(i, j)\mu^2(\gcd(i, j))~(\bmod 2^{32}) i=1Nj=1N(i+j)Kgcd(i,j)μ2(gcd(i,j)) (mod232)
看模数 2 32 2^{32} 232,显然可以自然溢出,这可以帮助我们减小常数。

接下来表演推式子:
原 式 = ∑ d = 1 N ∑ i = 1 N ∑ j = 1 N [ gcd ⁡ ( i , j ) = d ] ( ( i + j ) K d μ 2 ( d ) ) = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ i = 1 ⌊ N d ⌋ ∑ j = 1 ⌊ N d ⌋ ϵ ( gcd ⁡ ( i , j ) ) ( i + j ) K = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ i = 1 ⌊ N d ⌋ ∑ j = 1 ⌊ N d ⌋ ( i + j ) K ∑ x ∣ gcd ⁡ ( i , j ) μ ( x ) = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ x = 1 ⌊ N d ⌋ x K μ ( x ) ∑ i = 1 ⌊ N d x ⌋ ∑ j = 1 ⌊ N d x ⌋ ( i + j ) K = ∑ T = 1 N T K ∑ i = 1 ⌊ N T ⌋ ∑ j = 1 ⌊ N T ⌋ ( i + j ) K ∑ d ∣ T d μ 2 ( d ) μ ( T d ) \begin{aligned} 原式 &= \sum_{d = 1}^N\sum_{i = 1}^N\sum_{j = 1}^N[\gcd(i, j) = d]((i + j)^K d\mu^2(d)) \\ &= \sum_{d = 1}^Nd^{K + 1}\mu^2(d)\sum_{i = 1}^{\lfloor\frac{N}{d}\rfloor} \sum_{j = 1}^{\lfloor\frac{N}{d}\rfloor} \epsilon(\gcd(i, j))(i + j)^K \\ &= \sum_{d = 1}^N d^{K + 1}\mu^2(d)\sum_{i = 1}^{\lfloor\frac{N}{d}\rfloor}\sum_{j = 1}^{\lfloor\frac{N}{d}\rfloor}(i + j)^K\sum_{x | \gcd(i, j)} \mu(x) \\ &= \sum_{d = 1}^Nd^{K + 1}\mu^2(d)\sum_{x = 1}^{\lfloor\frac{N}{d}\rfloor}x^K\mu(x)\sum_{i = 1}^{\lfloor\frac{N}{dx}\rfloor}\sum_{j = 1}^{\lfloor\frac{N}{dx}\rfloor}(i + j)^K \\ &= \sum_{T = 1}^NT^K\sum_{i = 1}^{\lfloor\frac{N}{T}\rfloor} \sum_{j = 1}^{\lfloor\frac{N}{T}\rfloor}(i + j)^K \sum_{d|T}d\mu^2(d)\mu(\frac{T}{d}) \end{aligned} =d=1Ni=1Nj=1N[gcd(i,j)=d]((i+j)Kdμ2(d))=d=1NdK+1μ2(d)i=1dNj=1dNϵ(gcd(i,j))(i+j)K=d=1NdK+1μ2(d)i=1dNj=1dN(i+j)Kxgcd(i,j)μ(x)=d=1NdK+1μ2(d)x=1dNxKμ(x)i=1dxNj=1dxN(i+j)K=T=1NTKi=1TNj=1TN(i+j)Kd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值