1. 程式人生 > >組合數學之五 —— 莫比烏斯反演

組合數學之五 —— 莫比烏斯反演

前言:
新年第一個工作日,為什麼這麼頹這麼困。。。

學長退役的時候,曾經問過我:你們都知道我們的blog嗎
我表示Of course

今天在網上翻到了abclzr的blog
想當年莫比烏斯反演是TA爺給學長們講的
雖然聽過天宇哥哥,姜爺和丁隊的課,然而對於這種高階數論,不敢說掌握(甚至連理解都做不到)

基礎知識

學長blog的第一部分是:列舉除法

不要以為這是c++入門操作而不xi看
在做了一部分反演題之後,發現列舉法是最常用的一種奇技淫巧

  • trunc(n/i)只有O(sqrt(n))種取值
  • 對於i,這裡寫圖片描述是與n除以i並下取整取值相同的一段區間的右端點
  • 一個很有用的性質:
    這裡寫圖片描述
  • 上取整也有上述的3個性質

積性函式

  • f(ab)=f(a)*f(b)
  • 完全積性:不要求gcd(a,b)=1
  • 一般會考慮成:這裡寫圖片描述
  • 當f不是0的常值函式時,f(1)=1
  • 積性函式的狄利克雷字首和也是積性函式
    這裡寫圖片描述
  • 兩個積性函式的狄利克雷卷積也是積性函式
    這裡寫圖片描述
  • 積性函式可以線性篩出,線篩可以找到每個數的最小質因子及其次數,如果我們可以以較小的代價求出f(p^k),我們就可以線篩了

常見的積性函式

  1. 除數函式σk(n)=∑d^k,表示n的約數的k次冪和
  2. 約數個數函式:d(n)
  3. 約數和函式σ(n),表示n的約數之和
  4. 尤拉函式φ(n),表示不大於n且與n互質的正整數個數
  5. 莫比烏斯函式μ(n),在狄利克雷卷積的乘法中與恆等函式互為逆元,完全積性
  6. 元函式e(n)=[n=1],狄利克雷卷積的乘法單位元,完全積性
  7. 恆等函式I(n)=1:完全積性
  8. 單位函式id(n)=n:完全積性
  9. 冪函式idk(n)=n^k:完全積性

初等積性函式μ

  • 官方定義
    這裡寫圖片描述
  • 簡單性質
    這裡寫圖片描述
  • 莫比烏斯反演
    這裡寫圖片描述

初等積性函式φ

  • φ(n)表示1~n於n互質的數的個數
    關於φ函式的計算,有好幾種方式:
    這裡寫圖片描述
  • φ實際上完全可以用μ代替
  • 簡單性質:
    這裡寫圖片描述

杜教篩

在網上翻大神的blog的時候,看到別人的老師說的杜教篩祕訣:
這裡寫圖片描述

這裡就必須要吐槽一下了:
人家的老師這麼專業,這麼友善
能給學生如此細心的講解問題呢(而且人家的老師還自己維護blog,方便學生學習)

而我們的老師也很NB:
會教物理,會玩手機,會查監控,會抓頹,會搞衛生,會灌雞湯。。。
所以我們學不好不是我們的錯

我無f*ck說

要學杜教篩,我們首先需要介紹狄利克雷卷積:
這裡寫圖片描述

狄利克雷卷積滿足以下性質:
(設數論函式集為I)

  1. 結合律: ∀f,g,k∈I,(f∗g)∗k=f∗(g∗k)
  2. 單位元: ∃ϵ∈I,∀f∈I,f∗ϵ=ϵ∗f=f
  3. 逆元: ∀f∈I,∃f∈I,f∗g=ϵ
  4. 封閉性: ∀f,g∈I,f∗g∈I
  5. 交換律: ∀f,g∈I,f∗g=g∗f

(實際上也就是計算律有那麼一丁點用)

有了狄利克雷卷積,我們就來看一下杜教篩(終於進入了正題):

假設我們要求:
這裡寫圖片描述
設g∈I,且g(1)!=0

這裡寫圖片描述

也就是
這裡寫圖片描述

如果我們能夠快速地對g和f∗g求和,
那麼由於所有的⌊n/i⌋只有O(sqrt(n))種,則對於所有i,
計算S(⌊n/i⌋)的時間複雜度為這裡寫圖片描述

相關推薦

組合數學 ——

前言: 新年第一個工作日,為什麼這麼頹這麼困。。。 學長退役的時候,曾經問過我:你們都知道我們的blog嗎 我表示Of course 今天在網上翻到了abclzr的blog 想當年莫比烏斯反演是TA爺給學長們講的 雖然聽過天宇哥哥,姜爺和丁隊的課,然

BZOJ4652: [Noi2016]迴圈美(,杜教篩)

Description 牛牛是一個熱愛演算法設計的高中生。在他設計的演算法中,常常會使用帶小數的數進行計算。牛牛認為,如果在 k  進位制下,一個數的小數部分是純迴圈的,那麼它就是美的。現在,牛牛想知道:對於已知的十進位制數 n 和 m,在  kk

NOI 2016 循環美 (+杜教篩)

tar main 說明 pan == amp loj 個數 efi 題目大意:略 洛谷傳送門 鑒於洛谷最近總崩,附上良心LOJ鏈接 任何形容詞也不夠贊美這一道神題 $\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{M}[gcd(i,

【XSY2523】神社閉店

題目大意   給你a1…an,l,c每次給你x,y,求有多少個序列滿足:長度≤l,每個元素是[1,c],迴圈右移aj(x≤j≤y)次後和原序列相同。   n,q≤100000,l,c≤109,lcm(a1,…an)≤1013 題解   顯然只有右移g

HDU - 4675 GCD of Sequence (+組合數學)

gcd namespace 新的 ++i else if include 莫比烏斯 code mod 題意:給出序列[a1..aN],整數M和k,求對1-M中的每個整數d,構建新的序列[b1...bN],使其滿足: 1. \(1 \le bi \le M\) 2. \(gc

組合數學——

Mo¨biusMo¨bius函式 Mo¨biusMo¨bius函式定義 μ(m)=⎧⎩⎨1,m=1;(−1)k,m是k個不同素數乘積;0,其他情形;μ(m)={1,m=1;(−1)k,m是k個不同素數乘積;0,其他情形;例如:30=2×3×

[Codeforces547C]Mike and Foam(+組合數學

題目描述 傳送門 題意:給出一列數a1..an,每一次給出一個數x,將ax的狀態取反(有變成沒有,沒有變成有,初始沒有),每一次統計存在的數中gcd(ai,aj)=1(i<j)的有多少個數對。

【51nod】1222 最小公倍數計數 +組合計數

ace using 復雜度 amp nebula names ons 問題 sin 【題意】給定a和b,求滿足a<=lcm(x,y)<=b && x<y的數對(x,y)個數。a,b<=10^11。 【算法】莫比烏斯反演+組合計數 【題

BZOJ4407: 於神怒加強版( 線性篩)

idt col wap std break src cst line ace Description 給下N,M,K.求 感覺好迷茫啊,很多變換看的一臉懵逼卻又不知道去哪裏學。一道題做一上午也是沒誰了,, 首先按照套路反演化到最後應該是這個式子 $

luogu 4844 LJJ愛數數 (+數學推導)

題目大意:求滿足gcd(a,b,c)==1,1/a+1/b=1/c,a,b,c<=n的{a,b,c}有序三元組個數 因為題目裡有LJJ我才做的這道題 出題人官方題解https://www.cnblogs.com/Blog-of-Eden/p/9367521.html對我幫助很大 思維很巧妙的一道題

[BZOJ4652/UOJ#221][NOI2016]迴圈美(+杜教篩)

Address Solution…… 一、 O(nm)O(nm) 我們知道, kk 進位制小數 0.0000000...10000000..10000000..1...0.0000000...10000000..10000000..1... (迴圈

51nod1222 最小公倍數計數 數學

求$\sum_{i = 1}^{n} \sum_{j = 1}^{i} [lcm(i, j) \le n]$因為這樣不好求,我們改成求$\sum_{i = 1}^{n} \sum_{j = 1}^{n} [lcm(i, j) \le n]$.這樣求出來的值把除了(i, i)這樣的點對以外所有點對都重複統計了一

洛谷 4240 毒瘤神的考驗 ()

題目大意:略 題面傳送門 果然是一道神duliu題= = 出題人的題解傳送門 出題人的題解還是講得很明白的 1.關於$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\varphi (i,j)=\sum\limits_{i=1}^{n}\sum\limits_{j

數學(論)裡的一些定理(,傅立葉變換,數論變換...)

莫比烏斯反演在數論中佔有重要的地位,許多情況下能大大簡化運算。那麼我們先來認識莫比烏斯反演公式。 定理:和是定義在非負整數集合上的兩個函式,並且滿足條件,那麼我們得到結論       在上面的公式中有一個函式,它的定義如下:     (1)若,那麼

P4449 於神怒加強版 (

好的 its name bits sum namespace 更新 turn ans [題目鏈接] https://www.luogu.org/problemnew/show/P4449 給定n,m,k,計算 $\sum_{i=1}^n \sum_{j=1}^m \math

【BZOJ2301】problem b,數論

Time:2016.05.27 Author:xiaoyimi 轉載註明出處謝謝 傳送門 思路: ∑di=c∑bj=a[gcd(i,j)=k] =∑di=1∑bj=1[gcd(i,j)

bzoj 4407: 於神怒加強版【+線性篩】

isp space names bre esp clas ios getch [1] 看著就像反演,所以先推式子(默認n<m): \[ \sum_{d=1}^{n}d^k\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d] \] \[ =\sum

[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執著的認為,這樣