莫比乌斯函数
莫比烏斯函數(shù)
對于n≥0n \geq 0n≥0,設數(shù)nnn的唯一分解式為P1ρ1P2ρ2...PnρnP_1^{\rho_1}P_2^{\rho_2}...P_n^{\rho_n}P1ρ1??P2ρ2??...Pnρn??
μ(n)={1n=1(?1)sρ1=ρ2=...=ρs=10?ρi≥2\mu(n) = \left\{\begin{array}{rcl} 1 && n=1 \\ (-1)^s && \rho_1=\rho_2=...=\rho_s=1 \\ 0 && \exists \rho_i \geq 2 \end{array}\right.μ(n)=????1(?1)s0??n=1ρ1?=ρ2?=...=ρs?=1?ρi?≥2?
通俗地講,莫比烏斯函數(shù)就是:
μ(1)=1\mu(1)=1μ(1)=1
若nnn存在平方因子,μ(n)=0\mu(n)=0μ(n)=0
若nnn是奇數(shù)個不同素數(shù)之積,μ(n)=?1\mu(n)=-1μ(n)=?1
若nnn是偶數(shù)個不同素數(shù)之積,μ(n)=1\mu(n)=1μ(n)=1
性質(zhì)
-
性質(zhì)一:莫比烏斯函數(shù)是積性函數(shù)。若gcd(n,m)=1gcd(n,m)=1gcd(n,m)=1,則μ(nm)=μ(n)μ(m)\mu(nm)=\mu(n)\mu(m)μ(nm)=μ(n)μ(m)
證明:對n,mn,mn,m唯一分解然后分類討論即可
-
性質(zhì)二:設n≥1n \geq 1n≥1,d∣nd | nd∣n(ddd是nnn的因子)
∑d∣nμ(d)=[1n]={1n=10n≥2\sum_{d|n}\mu(d) = [\frac{1}{n}] = \left\{\begin{array}{rcl} 1 && n=1 \\ 0 && n \geq 2 \end{array}\right.∑d∣n?μ(d)=[n1?]={10??n=1n≥2?
證明:n=1n=1n=1時顯然滿足;設n≥2n \geq 2n≥2,數(shù)nnn的唯一分解式為P1ρ1P2ρ2...PsρsP_1^{\rho_1}P_2^{\rho_2}...P_s^{\rho_s}P1ρ1??P2ρ2??...Psρs??,ddd的唯一分解式為P1α1P2α2...PsαsP_1^{\alpha_1}P_2^{\alpha_2}...P_s^{\alpha_s}P1α1??P2α2??...Psαs??。根據(jù)莫比烏斯函數(shù)的定義和積性函數(shù)的性質(zhì)可以得出:
∑d∣nμ(d)=∑α1=10∑α2=10...∑αs=10μ(P1α1P2α2...Psαs)=∑10μ(P1α1)∑10μ(P2α2)...∑10μ(Psαs)\sum_{d|n}\mu(d) = \sum_{\alpha_1=1}^0\sum_{\alpha_2=1}^0...\sum_{\alpha_s=1}^0 \mu(P_1^{\alpha_1}P_2^{\alpha_2}...P_s^{\alpha_s}) \\ ~~~~~~~~~~~~~~~~~=\sum_1^0\mu(P_1^{\alpha_1})\sum_1^0\mu(P_2^{\alpha_2})...\sum_1^0\mu(P_s^{\alpha_s})∑d∣n?μ(d)=∑α1?=10?∑α2?=10?...∑αs?=10?μ(P1α1??P2α2??...Psαs??)?????????????????=∑10?μ(P1α1??)∑10?μ(P2α2??)...∑10?μ(Psαs??)
對于某一項∑10μ(Ptαt)=1+(?1)=0\sum_1^0\mu(P_t^{\alpha_t})=1 + (-1) = 0∑10?μ(Ptαt??)=1+(?1)=0,那么所有項乘起來仍為000,原式得證。
-
性質(zhì)三:∑d∣nμ(d)d=φ(n)n\sum_{d|n}\frac{\mu(d)}ze8trgl8bvbq= \frac{\varphi(n)}{n}∑d∣n?dμ(d)?=nφ(n)?
證明參見莫比烏斯反演關于φ(n)=∑d∣nμ(d)nd\varphi(n) = \sum_{d|n}\mu(d)\frac{n}ze8trgl8bvbqφ(n)=∑d∣n?μ(d)dn?的證明
求莫比烏斯函數(shù)
求單個數(shù)
int getMu(int n) {if (n == 1) return 1;int m = sqrt(n + 0.5), cnt = 0;for (int i = 2; i <= m; i++) {if (n % i == 0) {if (n % (i * i) == 0) return 0;n /= i;cnt++;}}if (n > 1) cnt++;return cnt & 1 ? -1 : 1; }線性篩選
若i%prime[j]!=0i\%prime[j]!=0i%prime[j]!=0,代表iii中不含該質(zhì)因子,也就是說乘上該質(zhì)因子后恰好會多出一個系數(shù)為111質(zhì)因子,因此μ(i?prime[j])=?μ(i)\mu(i*prime[j])= - \mu(i)μ(i?prime[j])=?μ(i);
否則代表含有該質(zhì)因子且系數(shù)會大于等于222,那么μ(i?prime[j])=0\mu(i*prime[j])=0μ(i?prime[j])=0
bool isprime[maxn]; int mu[maxn], prime[maxn];void initMu() {mu[1] = 1;int cnt = 0;for (int i = 2; i < maxn; i++) {if (!isprime[i]) prime[cnt++] = i, mu[i] = -1;for (int j = 0; j < cnt && i * prime[j] < maxn; j++) {isprime[i * prime[j]] = 1;if (i % prime[j]) mu[i * prime[j]] = -mu[i];else {mu[i * prime[j]] = 0;break;}}} }總結
- 上一篇: 图像处理职位面试题汇总(1)
- 下一篇: 来自Neil