Classical Algorithm--Mobius反演

Mobius

问题

F ( n ) = Σ d ∣ n f ( d ) F(n)=\Sigma_{d|n} f(d) F(n)=Σdnf(d)
F ( 1 ) = f ( 1 ) F ( 2 ) = f ( 1 ) + f ( 2 ) F ( 3 ) = f ( 1 ) + f ( 3 ) ⋯ F ( 6 ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + f ( 6 ) F(1)=f(1)\\F(2)=f(1)+f(2)\\F(3)=f(1)+f(3)\\\cdots\\F(6)=f(1)+f(2)+f(3)+f(6) F(1)=f(1)F(2)=f(1)+f(2)F(3)=f(1)+f(3)F(6)=f(1)+f(2)+f(3)+f(6)

反演

f ( 1 ) = F ( 1 ) f ( 2 ) = F ( 2 ) − F ( 1 ) f ( 3 ) = F ( 3 ) − F ( 1 ) f ( 6 ) = F ( 6 ) − F ( 3 ) − F ( 2 ) + F ( 1 ) f(1)=F(1)\\ f(2)=F(2)-F(1)\\ f(3)=F(3)-F(1)\\ f(6)=F(6)-F(3)-F(2)+F(1) f(1)=F(1)f(2)=F(2)F(1)f(3)=F(3)F(1)f(6)=F(6)F(3)F(2)+F(1)
容斥原理,求系数

Mobis function

μ ( n ) = { 1 n = 1 ( − 1 ) k n 的 k 个 质 因 数 指 数 都 为 1 0 o t h e r w i s e \mu(n)= \begin{cases} 1& n = 1 \\ (-1)^k &n的k个质因数指数都为1\\ 0&otherwise \end{cases} μ(n)=1(1)k0n=1nk1otherwise
Property I : i f ( a , b ) = 1 ,   μ ( a b ) = μ ( a ) μ ( b ) if(a,b)=1,\ \mu(ab)=\mu(a)\mu(b) if(a,b)=1, μ(ab)=μ(a)μ(b)
Property II : n ≠ 1 , Σ d ∣ n μ ( d ) = 0 n\neq1,\Sigma_{d|n}\mu(d)=0 n=1,Σdnμ(d)=0
Proof : n有k个质因数,若n的一个因数d, μ ( d ) ≠ 0 \mu(d)\neq0 μ(d)=0 Σ d ∣ n μ ( d ) = 1 − C k 1 + C k 2 ⋯ + ( − 1 ) k C k k = ( − 1 + 1 ) k = 0 \Sigma_{d|n}\mu(d)=1-C_k^1+C_k^2\cdots+(-1)^kC_k^k=(-1+1)^k=0 Σdnμ(d)=1Ck1+Ck2+(1)kCkk=(1+1)k=0

反演

F ( n ) = Σ d ∣ n f ( d ) → f ( n ) = Σ d ∣ n F ( d ) μ ( n d ) = Σ d ∣ n F ( n d ) μ ( d ) F ( d ) = Σ d ∣ n f ( n ) → f ( n ) = Σ n ∣ d F ( d ) μ ( d n ) F(n)=\Sigma_{d|n}f(d)\\ \rightarrow f(n)=\Sigma_{d|n}F(d)\mu(\frac{n}{d})\\ =\Sigma_{d|n}F(\frac{n}{d})\mu(d)\\ F(d)=\Sigma_{d|n}f(n)\\ \rightarrow f(n)=\Sigma_{n|d}F(d)\mu(\frac{d}{n})\\ F(n)=Σdnf(d)f(n)=ΣdnF(d)μ(dn)=ΣdnF(dn)μ(d)F(d)=Σdnf(n)f(n)=ΣndF(d)μ(nd)

卷积

f = F   ∗   μ f=F\ *\ \mu f=F  μ
f ( 1 ) ≠ 0 f(1)\neq 0 f(1)=0

(1)交换律 f   ∗   g = g   ∗   f f\ *\ g=g\ *\ f f  g=g  f
(2)结合律 ( f   ∗   g )   ∗   h = f   ∗   ( g   ∗   h ) (f\ *\ g)\ *\ h=f\ *\ (g\ *\ h) (f  g)  h=f  (g  h)
(3)分配律 ( f   +   g )   ∗   h = f   ∗   h + g   ∗   h (f\ +\ g)\ *\ h=f\ *\ h+g\ *\ h (f + g)  h=f  h+g  h
(4)单位元 ϵ ( 1 ) = 1 \epsilon(1)=1 ϵ(1)=1
(5)逆元 ϵ = f   ∗   g \epsilon=f\ *\ g ϵ=f  g

求逆元

f   ∗   g = ϵ n = 1 : f ( 1 ) g ( 1 ) = 1 n ≠ 1 : Σ d ∣ n f ( d ) g ( n d ) = 0 g ( n ) = 1 f ( 1 ) ( ϵ − Σ i ∣ n , i ≠ 1 f ( i ) g ( n i ) ) f\ *\ g=\epsilon\\ n=1:f(1)g(1)=1\\ n\neq 1:\Sigma_{d|n}f(d)g(\frac{n}{d})=0\\ g(n)=\frac{1}{f(1)}(\epsilon-\Sigma_{i|n,i\neq 1}f(i)g({n\over i})) f  g=ϵn=1:f(1)g(1)=1n=1:Σdnf(d)g(dn)=0g(n)=f(1)1(ϵΣin,i=1f(i)g(in))

Example

a < = n , b < = m a<=n,b<=m a<=n,b<=m的所有 ( a , b ) = 1 (a,b)=1 (a,b)=1有多少对?
f ( x ) = Σ i = 1 n Σ j = 1 m ( ( a , b ) = = x ) f(x)=\Sigma_{i=1}^n\Sigma_{j=1}^m((a,b)==x) f(x)=Σi=1nΣj=1m((a,b)==x)
最大公约数是p的倍数的对数
g ( p ) = Σ p ∣ d f ( d ) = ⌊ n p ⌋ ⌊ m p ⌋ g(p)=\Sigma_{p|d}f(d)=\lfloor {n\over p}\rfloor\lfloor {m\over p}\rfloor g(p)=Σpdf(d)=pnpm
f ( 1 ) = Σ 1 ∣ d μ ( d 1 ) g ( d ) = Σ i = 1 n μ ( i ) g ( i ) f(1)=\Sigma_{1|d}\mu({d\over 1})g(d)=\Sigma_{i=1}^n\mu(i)g(i) f(1)=Σ1dμ(1d)g(d)=Σi=1nμ(i)g(i)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值