欧拉与莫比乌斯

更多文章可以在本人的个人小站:https://kaiserwilheim.github.io 查看。
转载请注明出处。

初稿写于2021-10-10,
再修改于2022-02-07

Achtung: 本文章使用p来代指“任意质数”,请勿混淆。

首先让我们膜拜一下莱昂哈德·欧拉(Leonhard Euler):

欧拉

欧拉函数

欧拉函数 φ ( n ) φ(n) φ(n) 的概念是在 [ 0 , n − 1 ] [0,n-1] [0,n1] 范围内有多少个整数与 n n n 互质。

其中,我们规定 φ ( 1 ) = 1 φ(1)=1 φ(1)=1

且不难发现, φ ( p ) = p − 1 φ(p)=p-1 φ(p)=p1

欧拉函数的一些性质

欧拉函数是积性函数

φ ( m n ) = φ ( m ) φ ( n ) φ(mn) = φ(m) φ(n) φ(mn)=φ(m)φ(n)

并且当 n m o d 2 ≡ 1 n \bmod{2} \equiv 1 nmod21 时, φ ( 2 n ) = φ ( n ) φ(2n) = φ(n) φ(2n)=φ(n)

而当 n m o d 2 ≡ 0 n \bmod{2} \equiv 0 nmod20(即 2 ∣ n 2|n 2n)时, φ ( 2 n ) = 2 φ ( n ) φ(2n) = 2 φ(n) φ(2n)=2φ(n)

∑ m ∣ n n m = n φ ( n ) 2 \displaystyle \sum_{m|n}^{n} m = n \frac{φ(n)}{2} mnnm=n2φ(n)

∑ m ∣ n n m = n φ ( n ) 2 \sum_{m|n}^{n} m = n \frac{φ(n)}{2} mnnm=n2φ(n)

易证。

∑ d ∣ n φ ( d ) = n \displaystyle \sum_{d|n} φ(d) = n dnφ(d)=n

∑ d ∣ n φ ( d ) = n \sum_{d|n} φ(d) = n dnφ(d)=n

我们利用莫比乌斯反演的相关知识可以得出。

或者我们这样考虑:
如果 gcd ⁡ ( k , n ) = d \gcd(k,n) = d gcd(k,n)=d ,那么 gcd ⁡ ( k d , n d ) = 1 ( k < n ) \gcd(\frac{k}{d} , \frac{n}{d}) = 1 (k < n) gcd(dk,dn)=1(k<n)
我们如果设 f ( x ) f(x) f(x) 为满足 gcd ⁡ ( k , n ) = x \gcd(k,n) = x gcd(k,n)=x 的数的个数,那么 n = ∑ i − 1 n f ( i ) n = \sum_{i-1}^n f(i) n=i1nf(i)
根据上面的证明,我们可以发现, f ( x ) = φ ( n x ) f(x) = φ(\frac{n}{x}) f(x)=φ(xn) ,从而得到 n = ∑ d ∣ n φ ( n d ) n = \sum_{d|n} φ(\frac{n}{d}) n=dnφ(dn) 。注意此时我们的约数 d d d n d \frac{n}{d} dn 具有对称性,所以上面的式子可以化为 n = ∑ d ∣ n φ ( d ) n = \sum_{d|n} φ(d) n=dnφ(d)

φ ( p k ) = p k − p k − 1 \displaystyle φ(p^k) = p^k - p^{k-1} φ(pk)=pkpk1

n = p k n = p^k n=pk ,那么 φ ( n ) = p k − p k − 1 φ(n) = p^k - p^{k-1} φ(n)=pkpk1

由定义可知。
因为有 n ⊥ p k ⟺ p ∤ n n \perp p^k \iff p \not \mid n npkpn 。在 { 0 , 1 , p , ⋯ , p k − 1 } \{ 0,1,p,\cdots ,p^k-1 \} {0,1,p,,pk1} 中, p p p 的倍数是 { 0 , p , 2 p , ⋯ , p k − p } \{ 0,p,2p,\cdots ,p^k-p \} {0,p,2p,,pkp} ,共有 p k − 1 p^{k-1} pk1 个。

φ ( ∏ i = 1 s p i k i ) = ∏ i = 1 s p i k i − 1 ⋅ ( p i − 1 ) \displaystyle φ(\prod_{i=1}^s p_i^{k_i}) = \prod_{i=1}^s p_i^{k_i - 1} · (p_i - 1) φ(i=1spiki)=i=1spiki1(pi1)

由唯一分解定理,设 n = ∏ i = 1 s p i k i n = \prod_{i=1}^s p_i^{k_i} n=i=1spiki ,则有 φ ( n ) = ∏ i = 1 s p i − 1 p i φ(n) = \prod_{i=1}^s \frac{p_i - 1}{p_i} φ(n)=i=1spipi1

证明:

φ ( n ) = ∏ i = 1 s φ ( p i k i ) = ∏ i = 1 s p i k i − p i k i − 1 = ∏ i = 1 s ( p i − 1 ) × p i k i − 1 = ∏ i = 1 s ( 1 − 1 p i ) p i k i = n ∏ i = 1 s ( 1 − 1 p i ) \begin{aligned} φ(n) &= \prod_{i=1}^s φ(p_i^{k_i}) \\ &= \prod_{i=1}^s p_i^{k_i} - p_i^{k_i - 1} \\ &= \prod_{i=1}^s (p_i - 1) \times p_i^{k_i - 1} \\ &= \prod_{i=1}^s (1 - \frac{1}{p_i}) p_i^{k_i} \\ &= n \prod_{i=1}^s (1 - \frac{1}{p_i}) \end{aligned} φ(n)=i=1sφ(piki)=i=1spikipiki1=i=1s(pi1)×piki1=i=1s(1pi1)piki=ni=1s(1pi1)

计算欧拉函数的值

单点求值

我们不难发现,当 m m m 是一个质数的整数幂 p k p^k pk 时,我们有
φ ( p k ) = p k − p k − 1 φ(p^k)=p^k-p^{k-1} φ(pk)=pkpk1
;
如果 m > 1 m>1 m>1 不是一个质数的整数幂,那我们可以把 m m m 拆分成 m = m 1 m 2 m=m_1 m_2 m=m1m2 ,其中 m 1 ⊥ m 2 m_1 \perp m_2 m1m2。这样这个数就可以在剩余系里表示为 ( n m o d m 1 , n m o d m 2 ) (n \bmod m_1 , n \bmod m_2) (nmodm1,nmodm2) 。如果你不知道什么是剩余系,可以看我的博客:(咕了)。

根据
k ⊥ m 且 k ⊥ n ⟺ k ⊥ m n k \perp m 且 k \perp n \iff k \perp mn kmknkmn

gcd ⁡ ( m , n ) = gcd ⁡ ( n m o d m , m ) \gcd(m,n) = \gcd(n \bmod m,m) gcd(m,n)=gcd(nmodm,m)
可得
n ⊥ m ⟺ n m o d m 1 ⊥ m 1 且 n m o d m 2 ⊥ m 2 n \perp m \iff n \bmod m_1 \perp m_1 且 n \bmod m_2 \perp m_2 nmnmodm1m1nmodm2m2
,由此,我们可以推得
φ ( m ) = φ ( m 1 ) φ ( m 2 ) , m 1 ⊥ m 2 φ(m)=φ(m_1)φ(m_2),m_1 \perp m_2 φ(m)=φ(m1)φ(m2),m1m2
所以,欧拉函数是一个积性函数。

欧拉函数的通项公式是
φ ( m ) = ∏ p ∣ m ( p m p − p m p − 1 ) = m ∏ p ∣ m ( 1 − 1 p ) φ(m)=\prod_{p|m} (p^{m_p}-p^{m_p-1})=m \prod_{p|m}(1-\frac{1}{p}) φ(m)=pm(pmppmp1)=mpm(1p1)

上代码:

int euler_phi(int n)
{int m = int(sqrt(n + 0.5));int ans = n;for(int i = 2; i <= m; i++)if(n % i == 0){ans = ans / i * (i - 1);while(n % i == 0) n /= i;}if(n > 1) ans = ans / n * (n - 1);return ans;
}

如果将代码改为下面的形式可以优化一些:

int euler_phi(int n)
{int ans = n;for(int i = 2; i * i <= n; i++)if(n % i == 0){ans = ans / i * (i - 1);while(n % i == 0) n /= i;}if(n > 1) ans = ans / n * (n - 1);return ans;
}

区间筛

而我们可以使用筛法来求连续区间的欧拉函数值:

const int N = 1e7 + 5;
int phi[N], prime[N / 100];
bool visit[N];
void getphi(int n)
{phi[1] = 1;for(int i = 2; i <= n; i++){if(!visit[i]){prime[prime[0] + 1] = i;prime[0]++;phi[i] = i - 1;}for(int j = 1; j <= prime[0] && i * prime[j] <= n; j++){visit[i * prime[j]] = true;if(!(i % prime[j])){phi[i * prime[j]] = phi[i] * prime[j];break;}else{phi[i * prime[j]] = phi[i] * (prime[j] - 1);}}}
}

还有OI Wiki上提供的代码:

void pre()
{memset(is_prime, 1, sizeof(is_prime));int cnt = 0;is_prime[1] = 0;phi[1] = 1;for(int i = 2; i <= 5000000; i++){if(is_prime[i]){prime[++cnt] = i;phi[i] = i - 1;}for(int j = 1; j <= cnt && i * prime[j] <= 5000000; j++){is_prime[i * prime[j]] = 0;if(i % prime[j])phi[i * prime[j]] = phi[i] * phi[prime[j]];else{phi[i * prime[j]] = phi[i] * prime[j];break;}}}
}

复杂度均为线性。

欧拉定理

我们先看一下费马小定理。

费马小定理

众所周知,费马小定理是:
a p − 1 ≡ 1 ( m o d p ) , a ⊥ p a^{p-1} \equiv 1 \pmod{p},a \perp p ap11(modp),ap
还有另一种形式,是这样的:
∀ a ∈ N , a p ≡ a ( m o d p ) \forall a \in \mathbb{N} ,a^p \equiv a \pmod{p} aN,apa(modp)

证明

我们首先取一个不为 p p p 倍数的数 a a a
构造一个序列: A = { 1 , 2 , 3 , ⋯ , p − 1 } A = \lbrace 1,2,3, \cdots , p - 1 \rbrace A={1,2,3,,p1} ,这个序列拥有这样的一个性质:
∏ i = 1 n A i ≡ ∏ i = 1 n ( A i × a ) ( m o d p ) \prod_{i=1}^n A_i \equiv \prod_{i=1}^n (A_i \times a) \pmod{p} i=1nAii=1n(Ai×a)(modp)

证明:
∵ ( A i , p ) = 1 , ( A i × a , p ) = 1 \because (A_i,p) = 1 , (A_i \times a,p) = 1 (Ai,p)=1,(Ai×a,p)=1
又因为每一个 A i × a ( m o d p ) A_i \times a \pmod{p} Ai×a(modp) 都是独一无二的,且 A i × a ( m o d p ) < p A_i \times a \pmod{p} < p Ai×a(modp)<p ,得证(每一个 A i × a A_i \times a Ai×a 都对应了一个 A i A_i Ai)。
f = ( p − 1 ) ! f = (p-1)! f=(p1)!,则
f ≡ ( a × A 1 ) ( a × A 2 ) ( a × A 3 ) ⋯ ( a × A p − 1 ) ( m o d p ) a p − 1 ⋅ f ≡ f ( m o d p ) a p − 1 ≡ 1 ( m o d p ) \begin{aligned} f &\equiv (a \times A_1)(a \times A_2)(a \times A_3) \cdots (a \times A_{p-1}) \pmod{p} \\ a^{p-1} · f &\equiv f \pmod{p} \\ a^{p-1} &\equiv 1 \pmod{p} \end{aligned} fap1fap1(a×A1)(a×A2)(a×A3)(a×Ap1)(modp)f(modp)1(modp)
证毕。

或者也可以使用归纳法证明:

显然 1 p ≡ 1 ( m o d p ) 1^p \equiv 1 \pmod{p} 1p1(modp)。那么假设 a p ≡ a ( m o d p ) a^p \equiv a \pmod{p} apa(modp) 成立,那么通过二项式定理有
( a + 1 ) p = a p + C p 1 a p − 1 + C p 2 a p − 2 + ⋯ + C p p − 1 a + 1 (a+1)^p = a^p + C_p^1 a^{p-1} + C_p^2 a^{p-2} + \cdots + C_p^{p-1} a + 1 (a+1)p=ap+Cp1ap1+Cp2ap2++Cpp1a+1
因为 C p k = p ! ( n − k ) ! k ! C_p^k = \dfrac{p!}{(n-k)!k!} Cpk=(nk)!k!p! 对于 k ∈ [ 1 , p − 1 ] k \in [ 1,p-1 ] k[1,p1] 成立,在模 p p p 意义下 C p 1 ≡ C p 2 ≡ ⋯ ≡ C p p − 1 ≡ 0 ( m o d p ) C_p^1 \equiv C_p^2 \equiv \cdots \equiv C_p^{p-1} \equiv 0 \pmod{p} Cp1Cp2Cpp10(modp),那么 ( a + 1 ) p ≡ a p + 1 ( m o d p ) (a+1)^p \equiv a^p + 1 \pmod{p} (a+1)pap+1(modp),将 a p ≡ a ( m o d p ) a^p \equiv a \pmod{p} apa(modp) 代入得 ( a + 1 ) p ≡ a + 1 ( m o d p ) (a+1)^p \equiv a+1 \pmod{p} (a+1)pa+1(modp)
证毕。

欧拉定理

欧拉定理的内容如下:

gcd ⁡ ( a , m ) = 1 \gcd(a,m) = 1 gcd(a,m)=1,则 a φ ( m ) ≡ 1 ( m o d m ) a^{φ(m)} \equiv 1 \pmod{m} aφ(m)1(modm)

证明

欧拉定理的证明过程与费马小定理的证明过程十分相似。
我们同样首先构造一个与 m m m 互质的序列,再进行操作。

r 1 , r 2 , ⋯ , r φ ( m ) r_1,r_2, \cdots ,r_{φ(m)} r1,r2,,rφ(m) 为模 m m m 意义下的一个简化剩余系,则 a r 1 , a r 2 , ⋯ , a r φ ( m ) ar_1,ar_2, \cdots ,ar_{φ(m)} ar1,ar2,,arφ(m) 同样也为模 m m m 意义下的一个简化剩余系。所以, ∏ i = 1 φ ( m ) r i ≡ ∏ i = 1 φ ( m ) a r i ≡ a φ ( m ) ∏ i = 1 φ ( m ) r i ( m o d m ) \prod_{i=1}^{φ(m)} r_i \equiv \prod_{i=1}^{φ(m)} ar_i \equiv a^{φ(m)} \prod_{i=1}^{φ(m)} r_i \pmod{m} i=1φ(m)rii=1φ(m)ariaφ(m)i=1φ(m)ri(modm),约去 ∏ i = 1 φ ( m ) r i \prod_{i=1}^{φ(m)} r_i i=1φ(m)ri 后可得 a φ ( m ) ≡ 1 ( m o d m ) a^{φ(m)} \equiv 1 \pmod{m} aφ(m)1(modm)
证毕。

m = p m=p m=p 时,由于 φ ( m ) = m − 1 φ(m) = m-1 φ(m)=m1,将之代入可得费马小定理。

扩展欧拉定理

扩展欧拉定理是这个样子的:

a b ≡ { a b m o d φ ( m ) , gcd ⁡ ( a , m ) = 1 , a b , gcd ⁡ ( a , m ) ≠ 1 , b < φ ( m ) , a ( b m o d φ ( m ) ) + φ ( m ) , gcd ⁡ ( a , m ) ≠ 1 , b ≥ φ ( m ) . ( m o d m ) a^b \equiv \begin{cases} a^{b \ \bmod \ φ(m)}, & \gcd(a,m) = 1,\\ a^b, & \gcd(a,m) \neq 1, b < φ(m),\\ a^{(b \ \bmod \ φ(m))+φ(m)}, & \gcd(a,m) \neq 1,b \geq φ(m). \end{cases} \pmod{m} abab mod φ(m),ab,a(b mod φ(m))+φ(m),gcd(a,m)=1,gcd(a,m)=1,b<φ(m),gcd(a,m)=1,bφ(m).(modm)

证明见OI Wiki

莫比乌斯函数

定义

我们把一个数字分解质因数为 n = p 1 c 1 p 2 c 2 ⋯ p k c k n=p_1^{c_1}p_2^{c_2} \cdots p_k^{c_k} n=p1c1p2c2pkck,则
μ ( n ) = { 1 n = 1 0 ∀ i ∈ [ 1 , k ] , c i > 1 ( − 1 ) k ∀ i ∈ [ 1 , k ] , c i = 1 μ(n)= \begin{cases} 1 & n=1 \\ 0 & \forall i \in [1,k] , c_i > 1 \\ (-1)^k & \forall i \in [1,k] , c_i = 1 \end{cases} μ(n)=10(1)kn=1i[1,k],ci>1i[1,k],ci=1

解释一下:

  1. n = 1 n=1 n=1 时, μ ( n ) = 1 μ(n)=1 μ(n)=1
  2. n ≠ 1 n \neq 1 n=1 时:
    1. 当存在 i ∈ [ 1 , k ] i\in [1,k] i[1,k],使得 c i > 1 c_i > 1 ci>1 时, μ ( n ) = 0 μ(n)=0 μ(n)=0,也就是说只要某个质因子出现的次数超过一次, μ ( n ) μ(n) μ(n) 就等于 0 0 0
    2. 当任意 i ∈ [ 1 , k ] i\in[1,k] i[1,k],都有 c i = 1 c_i=1 ci=1 时, μ ( n ) = ( − 1 ) k μ(n)=(-1)^k μ(n)=(1)k,也就是说每个质因子都仅仅只出现过一次时, μ ( n ) μ(n) μ(n) 等于 − 1 -1 1 k k k 次幂,此处 k k k 指的便是仅仅只出现过一次的质因子的总个数。

性质

莫比乌斯函数不仅是积性函数,还有如下性质:
∑ d ∣ m μ ( d ) = [ m = = 1 ] \sum_{d|m} μ(d) = [m==1] dmμ(d)=[m==1]
其中 [ m = = 1 ] [m==1] [m==1] 代表 m==1?1:0

证明


n = ∏ i = 1 k p i c i , n ′ = ∏ i = 1 k p i n=\prod_{i=1}^k{p_i}^{c_i},n'=\prod_{i=1}^k p_i n=i=1kpici,n=i=1kpi
那么
∑ d ∣ n μ ( d ) = ∑ d ∣ n ′ μ ( d ) = ∑ i = 0 k C k i ⋅ ( − 1 ) i = ( 1 + ( − 1 ) ) k \sum_{d\mid n}μ(d)=\sum_{d\mid n'}μ(d)=\sum_{i=0}^k C_k^i·(-1)^i=(1+(-1))^k dnμ(d)=dnμ(d)=i=0kCki(1)i=(1+(1))k

莫比乌斯反演

如果两个的函数 f ( n ) f(n) f(n) g ( n ) g(n) g(n) 满足
f ( n ) = ∑ d ∣ n g ( d ) f(n) = \sum_{d|n} g(d) f(n)=dng(d)

g ( n ) = ∑ d ∣ n μ ( d ) f ( n d ) g(n) = \sum_{d|n} μ(d) f(\frac{n}{d}) g(n)=dnμ(d)f(dn)

证明

摘自《混凝土数学》

充分性

f ( n ) = ∑ d ∣ n g ( d ) = ∑ d ∣ n g ( n d ) \begin{aligned} f(n) &= \sum_{d|n} g (d)\\ &= \sum_{d|n} g (\frac{n}{d}) \end{aligned} f(n)=dng(d)=dng(dn)

∑ d ∣ n μ ( d ) f ( n d ) = ∑ d ∣ n μ ( d ) ∑ d 1 ∣ n d g ( d 1 ) \sum_{d|n} μ(d) f(\frac{n}{d}) = \sum_{d|n} μ(d) \sum_{d_1|\frac{n}{d}} g(d_1) dnμ(d)f(dn)=dnμ(d)d1dng(d1)

∑ d ∣ n ∑ d 1 ∣ n d μ ( d ) g ( d 1 ) = ∑ d 1 ∣ n g ( d 1 ) ∑ d ∣ n d 1 μ ( d ) = g ( n ) \begin{aligned} \sum_{d|n} \sum_{d_1|\frac{n}{d}} μ(d) g (d_1) &= \sum_{d_1|n} g(d_1) \sum_{d|\frac{n}{d_1}} μ(d) \\ &= g(n) \end{aligned} dnd1dnμ(d)g(d1)=d1ng(d1)dd1nμ(d)=g(n)

考虑到
∑ d ∣ n d 1 μ ( d ) = { 1 d 1 = n 0 d 1 < n \sum_{d|\frac{n}{d_1}} μ(d) = \begin{cases} 1 & d_1 = n \\ 0 & d_1 < n \end{cases} dd1nμ(d)={10d1=nd1<n
因此
g ( n ) = ∑ d ∣ n μ ( d ) f ( n d ) = ∑ d ∣ n μ ( n d ) f ( d ) \begin{aligned} g(n) &= \sum_{d|n} μ(d) f(\frac{n}{d}) \\ &= \sum_{d|n} μ(\frac{n}{d}) f(d) \end{aligned} g(n)=dnμ(d)f(dn)=dnμ(dn)f(d)

必要性

g ( n ) = ∑ d ∣ n μ ( d ) f ( n d ) = ∑ d ∣ n μ ( n d ) f ( d ) \begin{aligned} g(n) &= \sum_{d|n} μ(d) f(\frac{n}{d}) \\ &= \sum_{d|n} μ(\frac{n}{d}) f(d) \end{aligned} g(n)=dnμ(d)f(dn)=dnμ(dn)f(d)

∑ d ∣ n g ( d ) = ∑ d ∣ n g ( n d ) = ∑ d ∣ n ∑ d 1 ∣ n d μ ( n d d 1 ) f ( d 1 ) = ∑ d d 1 ∣ n μ ( n d d 1 ) f ( d 1 ) = ∑ d 1 ∣ n f ( d 1 ) ∑ d ∣ n d μ ( n d d 1 ) = f ( n ) \begin{aligned} \sum_{d|n} g(d) &= \sum_{d|n}g(\frac{n}{d}) \\ &= \sum_{d|n} \sum_{d_1|\frac{n}{d}} μ(\frac{n}{d d_1})f(d_1) \\ &= \sum_{d d_1|n} μ(\frac{n}{d d_1}) f(d_1) \\ &= \sum_{d_1|n} f(d_1) \sum_{d|\frac{n}{d}} μ(\frac{n}{d d_1}) \\ &= f(n) \end{aligned} dng(d)=dng(dn)=dnd1dnμ(dd1n)f(d1)=dd1nμ(dd1n)f(d1)=d1nf(d1)ddnμ(dd1n)=f(n)

考虑到

∑ d ∣ n d 1 μ ( n d d 1 ) = ∑ d ∣ n d 1 μ ( d ) = { 1 d 1 = n 0 d 1 < n \begin{aligned} \sum_{d|\frac{n}{d_1}} μ(\frac{n}{d d_1}) &= \sum_{d|\frac{n}{d_1}} μ(d) \\ &= \begin{cases} 1 & d_1 = n \\ 0 & d_1 < n \end{cases} \end{aligned} dd1nμ(dd1n)=dd1nμ(d)={10d1=nd1<n

因此

f ( n ) = ∑ d ∣ n g ( d ) = ∑ d ∣ n g ( n d ) \begin{aligned} f(n) &= \sum_{d|n} g(d) \\ &= \sum_{d|n} g(\frac{n}{d}) \end{aligned} f(n)=dng(d)=dng(dn)

求莫比乌斯函数的值

单点求值

自己算。

区间筛法

void getMu()
{mu[1] = 1;for(int i = 2; i <= n; ++i){if(!flg[i]) p[++tot] = i, mu[i] = -1;for(int j = 1; j <= tot && i * p[j] <= n; ++j){flg[i * p[j]] = 1;if(i % p[j] == 0){mu[i * p[j]] = 0;break;}mu[i * p[j]] = -mu[i];}}
}

莫比乌斯变换

f ( n ) f(n) f(n) g ( n ) g(n) g(n) 为两个数论函数。
如果有 f ( n ) = ∑ d ∣ n g ( d ) f(n) = \sum_{d|n} g(d) f(n)=dng(d) 那么有:

形式1: g ( n ) = ∑ d ∣ n μ ( d ) f ( n d ) g(n) = \sum_{d|n} μ(d) f(\frac{n}{d}) g(n)=dnμ(d)f(dn)

这种形式下,函数 f ( n ) f(n) f(n) 被称为函数 g ( n ) g(n) g(n) 的莫比乌斯变换,反之则称之为其的莫比乌斯逆变换(反演)。

形式2: g ( n ) = ∑ d ∣ n μ ( d n ) f ( d ) g(n) = \sum_{d|n} μ(\frac{d}{n}) f(d) g(n)=dnμ(nd)f(d)

据说这种形式更常考一点。

证明

  • 方法一:对原式做数论变换。

∑ d ∣ n μ ( d ) f ( n d ) = ∑ d ∣ n μ ( d ) ∑ k ∣ n d g ( k ) = ∑ k ∣ n g ( k ) ∑ d ∣ n k μ ( d ) = g ( n ) \begin{aligned} & \sum_{d\mid n}μ(d)f(\frac{n}{d}) \\ =& \sum_{d\mid n}μ(d)\sum_{k\mid \frac{n}{d}}g(k) \\ =& \sum_{k\mid n}g(k)\sum_{d\mid \frac{n}{k}}μ(d) \\ =& g(n) \end{aligned} ===dnμ(d)f(dn)dnμ(d)kdng(k)kng(k)dknμ(d)g(n)

∑ d ∣ n g ( d ) \displaystyle\sum_{d\mid n}g(d) dng(d) 来替换 f ( n d ) f(\dfrac{n}{d}) f(dn),再变换求和顺序。最后一步变换的依据: ∑ d ∣ n μ ( d ) = [ n = 1 ] \displaystyle\sum_{d\mid n}μ(d)=[n=1] dnμ(d)=[n=1],因此在 n k = 1 \dfrac{n}{k}=1 kn=1 时第二个和式的值才为 1 1 1。此时 n = k n=k n=k,故原式等价于 ∑ k ∣ n [ n = k ] ⋅ g ( k ) = g ( n ) \displaystyle\sum_{k\mid n}[n=k]\cdot g(k)=g(n) kn[n=k]g(k)=g(n)

  • 方法二:运用卷积。

原问题为:已知 f = g ∗ 1 f=g * 1 f=g1,证明 g = f ∗ μ g=f * μ g=fμ

易知如下转化: f ∗ μ = g ∗ 1 ∗ μ ⟹ f ∗ μ = g f * μ=g * 1 * μ\implies f * μ=g fμ=g1μfμ=g(其中 1 ∗ μ = ε 1 * μ=ε 1μ=ε)。

对于第二种形式:

类似上面的方法一,我们考虑逆推这个式子。

∑ n ∣ d μ ( d n ) f ( d ) = ∑ k = 1 + ∞ μ ( k ) f ( k n ) = ∑ k = 1 + ∞ μ ( k ) ∑ k n ∣ d g ( d ) = ∑ n ∣ d g ( d ) ∑ k ∣ d n μ ( k ) = ∑ n ∣ d g ( d ) ε ( d n ) = g ( n ) \begin{aligned} & \sum_{n|d}{μ(\frac{d}{n})f(d)} \\ =& \sum_{k=1}^{+\infty}{μ(k)f(kn)} \\ =& \sum_{k=1}^{+\infty}{μ(k)\sum_{kn|d}{g(d)}} \\ =& \sum_{n|d}{g(d)\sum_{k|\frac{d}{n}}{μ(k)}} \\ =& \sum_{n|d}{g(d)ε(\frac{d}{n})} \\ =& g(n) \end{aligned} =====ndμ(nd)f(d)k=1+μ(k)f(kn)k=1+μ(k)kndg(d)ndg(d)kndμ(k)ndg(d)ε(nd)g(n)

我们把 d d d 表示为 k n kn kn 的形式,然后把 f f f 的原定义代入式子。

发现枚举 k k k 再枚举 k n kn kn 的倍数可以转换为直接枚举 n n n 的倍数再求出 k k k,发现后面那一块其实就是 ε ε ε, 整个式子只有在 d = n d=n d=n 的时候才能取到值。

参考文献

《混凝土数学》
OI Wiki

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256472.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

贝塞尔

贝塞尔曲线可视化链接 介绍&#xff1a; 贝塞尔曲线&#xff0c;又称贝兹曲线或贝济埃曲线&#xff0c;是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线&#xff0c;贝兹曲线由线段与节点组成&#xff0c;节点是可拖动的支点&#xff0c;线段像可…

详解人工智能的五大思想流派 元芳你支持哪一派?

▼ 点击上方蓝字 关注网易智能 聚焦AI&#xff0c;读懂下一个大时代&#xff01; 【网易智能讯 3月1日消息】未来的就业形势还能依靠科技巨头和首席执行官们来决定&#xff0c;而人工智能的未来&#xff0c;依旧充满了太多的不确定性。 这一状况是源自于人工智能及其在科技行业…

【科大讯飞】全球首款,Mobius莫比斯同声翻译耳机 ,AI智能运动耳机 ,支持英日法韩俄西班牙6种语音...

© 程序员严选 丨 为您甄选全球好物 科大讯飞重磅推出 翻译界的最新黑科技神器 同声翻译 智能耳机 对方说外语&#xff0c;耳机就会同声语音翻译出来哦~ 。。。 著名语音AI品牌科大讯飞与咪咕联合打造了一款智能翻译耳机&#xff0c;全球首款全语音人工智能耳机——Mobius…

DailyMart03:如何基于DDD设计商城的领域模型?

大家好&#xff0c;我是飘渺。既然有人催更那今天咱们就继续更新DDD&微服务系列&#xff01; 在面向对象开发中&#xff0c;所有事物都可以看作是对象。然而&#xff0c;在日常开发中&#xff0c;我们通常从数据出发来设计对象的表现形式&#xff0c;这种做法侧重于数据属性…

哈萨比斯的人类补完计划

在著名动漫《新世纪福音战士》里&#xff0c;碇源堂和他背后的SEELE组织始终在执行一项叫做“人类补完计划”的神秘行动。 这个计划到底是什么意思&#xff0c;粉丝们已经争吵了很多年。但大体上应该是说利用“神性”来补完人类族群&#xff0c;从而消除人类社会中的种种问题。…

阿基里斯之踵

阿基里斯是古希腊神话中最伟大的英雄之一。相传&#xff0c;他的母亲是一位女神&#xff0c;在他降生之初&#xff0c;女神为了使他长生不死&#xff0c;将他浸入冥河洗礼。阿基里斯从此刀枪不入&#xff0c;百毒不侵&#xff0c;只有一点除外———他的脚踵当时被女神提在手中…

麦比乌斯带

数学家们吐露&#xff0c;麦比乌斯带只有单面&#xff0c;如果你要将它分成两半&#xff0c;你将会感到十分可笑&#xff0c;因为分开后还是一条带。 莫比乌斯环的奇妙之处有三&#xff1a; 一、莫比乌斯环只存在一个面。 二、如果沿着莫比乌斯环的中间剪开&#xff0c;将会形成…

数字与能源,交织成新基建的摩比斯环

提到新基建&#xff0c;大家可能会首先想起大数据、AI、云计算组成的数字产业&#xff0c;以及高铁、城轨、新能源汽车构成的交通产业。但如果你留心分析&#xff0c;会发现新基建的体系里还有一条“暗线”——那就是能源。 无论直接指向能源升级的特高压、充电桩&#xff0c;还…

塞尔希奥·阿奎罗和 The Sandbox 携手合作,激活元宇宙足球迷!

五次英超联赛冠军兼创纪录的得分球员选择了 The Sandbox 平台来创建他的第一个虚拟世界。 简要介绍 阿根廷在串流媒体和游戏领域上的足球传奇人物和全球典范将继续建立新的数字社区&#xff0c;这一次是与 The Sandbox 中的独特空间 Kuniverse。 来自世界各地的球迷将能够关注阿…

莫比乌斯详细介绍

莫比乌斯反演 莫比乌斯反演是数论数学中很重要的内容&#xff0c;可以用于解决很多组合数学的问题。 莫比乌斯函数 莫比乌斯函数&#xff0c;数论函数&#xff0c;由德国数学家和天文学家莫比乌斯提出。梅滕斯首先使用μ(n)作为莫比乌斯函数的记号。 莫比乌斯函数是指以下的…

无主之地kill ajax,阿克斯顿 - 无主之地中文维基 - 灰机wiki

阿克斯顿 艾克斯顿和军刀枪塔 角色类型可选角色(无主之地2) NPC(无主之地&#xff1a;前奏) 性别男性 种族人类 Axton is the playable Commando class character in Borderlands 2 Launch Date Trailer. 背景 Originally from Hieronymous, Axton spent ten years with the Da…

Mahalanobis(马哈拉诺比斯)距离

马氏距离(Mahalanobis Distance)是一种距离的度量&#xff0c;可以看作是欧氏距离的一种修正&#xff0c;修正了欧式距离中各个维度尺度不一致且相关的问题。 马氏距离&#xff08;Mahalanobis Distance&#xff09;是由马哈拉诺比斯&#xff08;P. C. Mahalanobis&#xff09;…

通用寄存器-汇编复习(1)

弄清寄存器表达,原理和配件及汇编实验验证。 往期文章: 汇编语言基础-汇编复习(0)_luozhonghua2000的博客-CSDN博客 一个典型的 CPU(此处讨论的不是某一具体的 CPU)由运算器、控制器、寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于 CP…

想把手机内容投屏到电脑 并且可以用电脑控制手机怎么办,很简单

首先打开设置&#xff0c;点击应用》可选功能 点击 查看功能 搜索 无线显示器点击下一步 点击安装 等待安装完成 完成后我们打开 系统》投影到此电脑 把设置改为以下选项&#xff0c;然后单击启动两家应用以投影到此电脑 出现这个画面就对了&#xff0c;接下来我们开始调试手…

发现了一个很好用的电脑上用电脑控制安卓手机的软件

2019独角兽企业重金招聘Python工程师标准>>> 发现了一个很好用的电脑上用电脑控制安卓手机的软件scrcpy&#xff0c; 还是开源的 地址&#xff1a; https://github.com/Genymobile/scrcpy windows,mac os,linux都支持。 基本上没有延迟&#xff0c;电脑屏幕显示安卓…

图解:手机控制电脑的软件的使用教程

在使用IP软件时总是掉线&#xff0c;有时又要出去&#xff0c;不能总呆在电脑旁&#xff0c;所以使用了一个手机控制电脑的软件 使用方法&#xff1a;电脑下载一个这个软件&#xff0c;手机下载一个 下载地址官网&#xff1b;https://www.teamviewer.com/en/download/windows…

手机可以控制电脑?

当你在外时&#xff0c;老师一个电话打过来要文件。 当你躺在床上时&#xff0c;想看看书房的电脑下载学习资料是否掉线。 当你把电脑借给别人用&#xff0c;想偷偷观察他有没有干坏事&#xff0c;电脑不在身边&#xff0c;手机尚在。 用手机控制电脑是一种怎样的体验&#…

怎么用手机控制电脑?手机控制手机如何实现?

随着远程控制技术的发展&#xff0c;怎么用手机控制电脑是很多人的疑问。用手机远程控制电脑&#xff0c;通过手机实现对电脑的实时操作&#xff0c;实现手机与电脑同时兼得的效果。本文小编教您怎么用手机控制电脑&#xff0c;希望可以帮助到大家。 怎么用手机控制电脑? 工具…