版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21110267/article/details/45397595
写在前面
- 必须把更多的精力放在文化课上了, 所以这段时间的学习和数学相关的比较多, 希望可以对文化课有帮助.
莫比乌斯反演公式
-
g(n)=∑d|nf(d)⇒f(n)=∑d|nμ(d)g(nd)
基础知识
-
μ 函数
f(n)=⎧⎩⎨1,(−1)k,0,n=1n=p1∗p2∗...∗pkn=others -
μ 函数是积性函数, 因为当 n 是质数时μ(n)=(−1)1=−1 , 所以可以通过筛法求出μ 函数.
mu[1] = 1;
for(i = 2; i <= n; i++) {
if(!vis[i]) {
prime[++c] = i;
mu[i] = -1;
}
for(j = 1; prime[j] * i <= n; j++) {
vis[prime[j] * i] = 1;
if(i % prime[j] == 0) {
mu[prime[j] * i] = 0;
break;
}
mu[prime[j] * i] = -mu[i];
}
}
莫比乌斯反演的证明
- 可以从后向前证明.
- 已知
g(n)=∑d|nf(d) - 求证
f(n)=∑d|nμ(d)g(nd) - 证明
f(n)=∑d|nμ(d)g(nd)=∑d|nμ(d)∑k|ndf(k)=∑d|n∑k|ndf(k)∗μ(d)
然后的一步让我很头疼, 要把f(k) 提出来, 统计f(k) 所乘的μ(d) 的和.
仔细观察,k 的取值范围就是n 的所有因子. 如果f(k) 要和μ(d) 相乘, 那么满足的关系是k|nd , 也就是k∗m=nd , 变换一下形式就得到d∗m=nk , 即d|nk . 也就是f(k) 要和所有d|nk 的d 相乘.
用这个结论继续化简刚才的式子, 得到下面
f(n)=∑d|n∑k|ndf(k)∗μ(d)=∑k|nf(k)∑d|nkμ(d)
μ 函数有很多奇怪的性质, 比如下面这条
∑d|nμ(d)={1,0,n=1n>1
n=1 时比较显然
n>1 时将n 分解为p1a1p2a2...pkak , 而n 的所有因子中,μ 不为0的只有质因子次数都为1的因子, 其中质因数个数为r 个的有Crk 个. 可以得到下面的式子
∑d|nμ(d)=∑i=0kCik(−1)i=(1+(−1))k=0
这是数学上的二项式展开. 用这个结论用到刚才推了一半的f(n)
中
f(n)=∑k|nf(k)∑d|nkμ(d)
发现除非n=k 这时∑d|nkμ(d)=1 , 否则为0.
最后就得到f(n)=f(n) 说明命题是正确的.
后记
- 准备做几道题应用应用.