演算法學習-莫比烏斯反演
寫在前面
- 必須把更多的精力放在文化課上了, 所以這段時間的學習和數學相關的比較多, 希望可以對文化課有幫助.
莫比烏斯反演公式
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(
然後的一步讓我很頭疼, 要把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)
μ 函式有很多奇怪的性質, 比如下面這條
∑
n=1 時比較顯然
n>1 時將n 分解為相關推薦
演算法學習-莫比烏斯反演
寫在前面 必須把更多的精力放在文化課上了, 所以這段時間的學習和數學相關的比較多, 希望可以對文化課有幫助. 莫比烏斯反演公式 g(n)=∑d|nf(d)⇒f(n)=∑d|nμ(d)g(
學習筆記--數論--莫比烏斯反演初認識
開頭 iostream rime prime 沒有 ace 建議 bool names 前言 本文只是用比較通俗的例子讓大家了解一下什麽是莫比烏斯反演,其中說明 (明明都是瞎猜)可能有紕漏。本人也是個蒟蒻,未能給出珂學證明,還望多多指教。 理論基礎 “|”符號表示整除
莫比烏斯反演學習筆記
莫比烏斯 cnblogs clas sdn uri csdn .net body 莫比烏斯反演 莫比烏斯反演學習筆記 http://blog.csdn.net/litble/article/details/72804050 hdu1695 莫比烏斯反演學習筆記
「莫比烏斯反演」學習筆記
莫比烏斯反演 pre 公式 筆記 不同 mob mar margin n) 定義莫比烏斯函數$μ$$$ μ(d)=\left\{\begin{matrix} 1& n=1\\ (-1)^k&d=p_1*p_2*...*p_k \\ 0&o
[學習筆記]莫比烏斯反演
1、\(Crash\)的數字表格 \(assume\ n<m\) \(\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\) \(\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==d]\frac{ij}{d}\) \(
莫比烏斯反演 狄利克雷卷積 杜教篩 學習筆記
前置知識:一些數論函式,比如尤拉函式、莫比烏斯函式的一些性質,積性函式及性質,整除分塊。 這裡預設大家會前置知識,如果不會請自行學習。 之前嘗試看過,結果後來都忘光了,於是還是決定應該寫個學習筆記記錄一下。 首先開始介紹莫比烏斯反演。 我們設
莫比烏斯反演學習筆記(轉載自An_Account大佬)
有一個 多人 rac 導出 公式 i++ 約數 n) 得出 轉載自An_Account大佬 提示:別用莫比烏斯反演公式,會炸的 只需要記住: [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\mu(d)[g
莫比烏斯反演的學習(HDU1695)
原文地址 前兩天學習了一下之前一直覺得高大上並且想學的內容——莫比烏斯反演。不過學任何東西都是一樣,學會了發現也就這樣,雖然只是皮毛。OK,廢話不多說,進入正題,今天我用杭電的1695這道題再來溫習一下莫比烏斯反演。 HDU1695的題目大意
hdu GCD(莫比烏斯反演+一點學習筆記)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15999 &n
莫比烏斯反演學習日記
span 神奇 urn prim name 12g article per show 目錄 莫比烏斯函數 莫比烏斯反演 【CJOJ2512】gcd之和 -反演 P2257
莫比烏斯反演學習記錄(最菜的垃圾而淺薄基礎的總結)
turn 找到 mem += 分解質 並不會 但是 printf 取值 鑒於容易忘,決定先把目前會的寫出來..... 莫比烏斯函數:對於一個整數N,按照算數基本定理分解質因數為N = p1^c1 * p2^c2 * p3^c3 * ... * pm^cm
[SPOJ VLATTICE]Visible Lattice Points 數論 莫比烏斯反演
string rst ase 計算 mod visible font sample poj 7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice.
【bzoj4176】Lucas的數論 莫比烏斯反演+杜教篩
wid eight 前綴 .html != brush name load ans 題目描述 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1<=i<
【BZOJ2045】雙親數 莫比烏斯反演
namespace 一個 ron == true pac 公約數 ostream 都是 【BZOJ2045】雙親數 Description 小D是一名數學愛好者,他對數字的著迷到了瘋狂的程度。 我們以d = gcd(a, b)表示a、b的最大公約數,小D執著的認為,這樣
【bzoj2154】Crash的數字表格 莫比烏斯反演
name ros -1 led idt 莫比烏斯 style efi con 題目描述 今天的數學課上,Crash小朋友學習了最小公倍數(Least Common Multiple)。對於兩個正整數a和b,LCM(a, b)表示能同時被a和b整除的最小正整數。例如,LCM
Dirichlet卷積和莫比烏斯反演
如果 bsp 滿足 常見 定義 row chl 莫比烏斯反演 nbsp 半夜不睡寫博客 1.Dirichlet卷積 定義2個數論函數f,g的Dirichlet卷積$(f*g)n=\sum_{d|n}f(d)g(\frac{n}{d})$ Dirichle
莫比烏斯反演
isp init 我們 線性 spa 線性篩 之前 element int 莫比烏斯反演在許多情況下可以簡化運算。 定理:F(n)和f(n)是定義在非負整數集合上的兩個函數,並且滿足條件F(n)=∑d|n f(d)。 附:∑d|n 的意思是對所有n的因子d求和。 那麽,我
bzoj 2301 Problem b - 莫比烏斯反演
flag class memory sample sin swa scrip return lag Description 對於給出的n個詢問,每次求有多少個數對(x,y),滿足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y
[SPOJ 5971] LCMSum 莫比烏斯反演
strong logs git 復雜 進行 str == 給定 register 題意 $t$ 組詢問, 每組詢問給定 $n$ , 求 $\sum_{k = 1} ^ n [n, k]$ . $t \le 300000, n \le 1000000$ . 一些常
hdu1695(莫比烏斯反演)
ios targe .net ++ 其中 參考 http bool rim 題目鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 題意: 對於 a, b, c, d, k . 有 x 屬於 [a, b], y 屬於