数学--数论--莫比乌斯函数
生活随笔
收集整理的這篇文章主要介紹了
数学--数论--莫比乌斯函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:
默比烏斯函數或繆比烏斯函數是指以下的函數 :
μ(n)={1若n=1;(?1)k若n無平方因子數,且n=p1?p2....?pk;0若n有平方因子數μ(n)= \left\{ \begin{aligned} 1& \ \ \ \text{若n=1};\\ (-1)^k& \ \ \ 若n無平方因子數,且n=p_1*p_2....*p_k ;\\ 0& \ \ \ 若n有平方因子數 \end{aligned} \right.μ(n)=??????1(?1)k0????若n=1;???若n無平方因子數,且n=p1??p2?....?pk?;???若n有平方因子數?
性質:
我們之前就提到過,莫比烏斯是積性函數,必然滿足積性函數的性質
積性函數
性質1:
性質2:
莫比烏斯函數值求法:
1.單個函數值:
2.線性篩:
/** 莫比烏斯反演公式* 線性篩法求解積性函數(莫比烏斯函數)*/ const int MAXN = 1000000; bool check[MAXN + 10]; int prime[MAXN + 10]; int mu[MAXN + 10];void Moblus() {memset(check, false, sizeof(check));mu[1] = 1;int tot = 0;for (int i = 2; i <= MAXN; i++){if (!check[i]){prime[tot++] = i;mu[i] = -1;}for (int j = 0; j < tot; j++){if (i * prime[j] > MAXN){break;}check[i * prime[j]] = true;if (i % prime[j] == 0){mu[i * prime[j]] = 0;break;}else{mu[i * prime[j]] = -mu[i];}}} }總結
以上是生活随笔為你收集整理的数学--数论--莫比乌斯函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人民币符号怎么打(¥人民币符号怎么打)
- 下一篇: 数学--数论--素数