【学习笔记】积性函数
文章目录
- 概述
- 贝尔级数
- 狄利克雷生成函数
- 黎曼函数
- 导数与积分
- 对数和指数
- 除法
- 线性筛
- Powerful Number\text{Powerful Number}Powerful Number
- 杜教筛
- 课后习题
概述
最近承蒙 Tiw-Air-OAO\textsf{Tiw-Air-OAO}Tiw-Air-OAO 讲了讲积性函数,感觉自己多有不会之处,于是也随便写点什么,或许能够震惊几天后的自己。
注:积性函数 f(x)f(x)f(x) 满足,若 ab=xab=xab=x 且 a⊥ba\perp ba⊥b 则 f(x)=f(a)f(b)f(x)=f(a)f(b)f(x)=f(a)f(b) 。
贝尔级数
这真是一个天才的想法(至少在我这个数学门外汉看来如此)。它实质上是个 多元生成函数。
具体而言,对于所有质数 ppp,生成函数中都把 xpx_pxp 视为一个变元。那么很容易想到,设唯一分解 n=∏pitin=\prod p_i^{t_i}n=∏piti,则函数 f(x)f(x)f(x) 的 贝尔生成函数(不是学名)为
F=∑nf(n)∏i(xpi)tiF=\sum_{n}f(n)\prod_i(x_{p_i})^{t_i} F=n∑f(n)i∏(xpi)ti
也就是说,每个质因子的次数,指明了一个变元的次数。
而 f(x)f(x)f(x) 为积性函数,故有 f(n)=∏f(piti)f(n)=\prod f(p_i^{t_i})f(n)=∏f(piti) 。所以我们很轻易地发现了一个对应关系:
F=∏i[∑j=0+∞f(pij)xpij]F=\prod_i\left[\sum_{j=0}^{+\infty}f(p_i^{\thinspace j})x_{p_i}^{\thinspace j}\right] F=i∏[j=0∑+∞f(pij)xpij]
于是记 Fp(x)=∑n⩾0f(pn)xnF_p(x)=\sum_{n\geqslant 0}f(p^n)x^nFp(x)=∑n⩾0f(pn)xn 为积性函数 fff 在质数 ppp 上的 贝尔级数。显然贝尔级数的常数项必须是 111 。那么原生成函数
F=∏p∈PrimeFp(xp)F=\prod_{p\in\text{Prime}}F_p(x_p) F=p∈Prime∏Fp(xp)
反过来,如果一个函数的 “贝尔生成函数” 可以写成贝尔级数的乘积,则该函数为积性函数。
不难发现 狄利克雷卷积就是 “贝尔生成函数” 的乘积。这也很好理解:下标相乘,等价于指数相加,而指数是次数,那不就是普通卷积吗?
那么,两个积性函数相乘呢?由于 F,GF,GF,G 都可以写成贝尔级数的乘积,所以 HHH 也是贝尔级数的乘积;其贝尔级数就是 f,gf,gf,g 对应的贝尔级数相乘。所以说 积性函数的狄利克雷卷积是积性函数。同样的道理,可以说明积性函数对狄利克雷乘积构成交换群。
狄利克雷生成函数
贝尔生成函数很妙,但是那是多元的,更适合理论推导;狄利克雷生成函数 则是一元的,并且同样可用于狄利克雷卷积。定义为
F(x)=∑n⩾1f(n)nxF(x)=\sum_{n\geqslant 1}{f(n)\over n^x} F(x)=n⩾1∑nxf(n)
注意此处 xxx 是指数!所以这不是 形式幂级数。关于它的合理性,我没能力探究了;相信它是正确的吧。
黎曼函数
为什么要把 nxn^xnx 放在分母呢?因为有个 臭名昭著的 黎曼 ζ\zetaζ 函数
ζ(s)=∑n⩾11ns\zeta(s)=\sum_{n\geqslant 1}{1\over n^s} ζ(s)=n⩾1∑ns1
它就是出现在 黎曼猜想 里的函数 的前身。为了和它接轨,就把狄利克雷生成函数写成那样了。
类比 贝尔级数
里的推导,我们可以想到,积性函数 f(x)f(x)f(x) 的狄利克雷生成函数
F(s)=∏p∈Prime[∑n⩾0f(pn)pns]F(s)=\prod_{p\in\text{Prime}}\left[\sum_{n\geqslant 0}\frac{f(p^n)}{p^{ns}}\right] F(s)=p∈Prime∏[n⩾0∑pnsf(pn)]
也是等于 质数处的生成函数的乘积。事实上这是必然的结果,因为我们可以将原函数视作若干个只在某质数的幂上有值的积性函数的狄利克雷卷积。
那么我们可以写出伪封闭形式,比如
ζ(s)=∏p∈Prime∑n⩾01pns=∏p∈Prime11−p−s\zeta(s)=\prod_{p\in\text{Prime}}\sum_{n\geqslant 0}{1\over p^{ns}}\\ =\prod_{p\in\text{Prime}}{1\over 1-p^{-s}} ζ(s)=p∈Prime∏n⩾0∑pns1=p∈Prime∏1−p−s1
再比如,欧拉函数 φ(x)\varphi(x)φ(x) 对应的狄利克雷生成函数为
Φ(s)=∏p∈Prime[1+∑n⩾1(p−1)⋅pn−1pns]=∏p∈Prime[1+(p−1)∑n⩾1pn(1−s)−1]=∏p∈Prime[1+(p−1)⋅p−s1−p1−s]=∏p∈Prime1−p−s1−p1−s=ζ(s−1)ζ(s)\begin{aligned} \varPhi(s) &=\prod_{p\in\text{Prime}}\left[1+\sum_{n\geqslant 1}{(p{\rm-}1)\cdot p^{n-1}\over p^{ns}}\right]\\ &=\prod_{p\in\text{Prime}}\left[1+(p-1)\sum_{n\geqslant 1}p^{n(1-s)-1}\right]\\ &=\prod_{p\in\text{Prime}}\left[1+{(p{\rm-}1)\cdot p^{-s}\over 1-p^{1-s}}\right]\\ &=\prod_{p\in\text{Prime}}{1-p^{-s}\over 1-p^{1-s}}\\ &=\frac{\zeta(s{\rm-}1)}{\zeta(s)} \end{aligned} Φ(s)=p∈Prime∏[1+n⩾1∑pns(p−1)⋅pn−1]=p∈Prime∏[1+(p−1)n⩾1∑pn(1−s)−1]=p∈Prime∏[1+1−p1−s(p−1)⋅p−s]=p∈Prime∏1−p1−s1−p−s=ζ(s)ζ(s−1)
这时候我们终于有点意识到 ζ(s)\zeta(s)ζ(s) 的便利了。才怪呢,又不是所有积性函数都有闭形式。
导数与积分
一般来说,应该有
ddsF(s)=∑n⩾1f(n)lnn−ns{\text d\over\text ds}F(s)=\sum_{n\geqslant 1}{f(n)\ln n\over -n^{s}} dsdF(s)=n⩾1∑−nsf(n)lnn
但是 lnn∉Z\ln n\notin\Zlnn∈/Z 就很糟糕了。所以我们必须 重新定义导数,同时重新定义积分。
我们知道,导数的良定义需要 (u+v)′=u′+v′(u+v)'=u'+v'(u+v)′=u′+v′ 和 (uv)′=u′v+uv′(uv)'=u'v+uv'(uv)′=u′v+uv′ 。由于前者的存在,我们只需要定义单项式的导数,即可推知多项式的导数;检验后者即可。
设
(vn−s)′=λ(n)⋅vn−s(vn^{-s})'=\lambda(n)\cdot vn^{-s} (vn−s)′=λ(n)⋅vn−s
那么根据 a−s⋅b−s=(ab)−sa^{-s}\cdot b^{-s}=(ab)^{-s}a−s⋅b−s=(ab)−s 有 λ(a)+λ(b)=λ(ab)\lambda(a)+\lambda(b)=\lambda(ab)λ(a)+λ(b)=λ(ab) 。没错,这就是唯一的限制了。请问 λ(n)\lambda(n)λ(n) 应该取什么呢?
可以看出,λ(n)\lambda(n)λ(n) 其实类似于完全积性函数——只要 λ(p)(p∈Prime)\lambda(p)\;(p\in\text{Prime})λ(p)(p∈Prime) 已知,所有值都可以被求出。所以我们可以随意规定 λ(p)\lambda(p)λ(p),但是为了简单,就规定 λ(p)=1\lambda(p)=1λ(p)=1 吧。此时 λ(n)\lambda(n)λ(n) 为 nnn 的 可重质因子个数。即,唯一分解 n=∏pitin=\prod p_i^{t_i}n=∏piti 时,λ(n)=∑ti\lambda(n)=\sum t_iλ(n)=∑ti 。
显然 λ(1)=0\lambda(1)=0λ(1)=0 。于是我们就改写了导数的定义。积分则是其逆运算,改为除以 λ(n)\lambda(n)λ(n) 即可。
对数和指数
根据常识而言,自然对数应当为
lnF(s)=∫F′(s)F(s)ds\ln F(s)=\int{F'(s)\over F(s)}\text ds lnF(s)=∫F(s)F′(s)ds
除法 会在后面讨论。导数应当是上文说到的 导数
,积分亦然。其正确性是什么?是假的。因为 lnF(s)\ln F(s)lnF(s) 不太可能系数全为整数。所以这里的 ln\lnln 同样是一个重新定义。
ln\lnln 的良定义在于 ln(uv)=lnu+lnv\ln(uv)=\ln u+\ln vln(uv)=lnu+lnv 。它是显然成立的,因为导数仍然有良定义,那么 ln\lnln 利用导数来定义,就不可能不自洽。如果你真好奇,请自行验证。
exp\expexp 咋办呢?可以用导数来定义,也可以是 ln\lnln 逆运算,二者的结果必然相同。G(s)=expF(s)G(s)=\exp F(s)G(s)=expF(s) 则 F(s)=lnG(s)=∫G′(s)G(s)dsF(s)=\ln G(s)=\int\frac{G'(s)}{G(s)}\text dsF(s)=lnG(s)=∫G(s)G′(s)ds,所以有
F′(s)G(s)=G′(s)F'(s)G(s)=G'(s) F′(s)G(s)=G′(s)
这东西可以直接计算:设 G(s)=∑n⩾1g(n)nsG(s)=\sum_{n\geqslant 1}{g(n)\over n^s}G(s)=∑n⩾1nsg(n),则上式等价于
g(n)λ(n)=∑ab=nf(a)λ(a)g(b)g(n)\lambda(n)=\sum_{ab=n}f(a)\lambda(a)g(b) g(n)λ(n)=ab=n∑f(a)λ(a)g(b)
由于 λ(1)=0\lambda(1)=0λ(1)=0,所以 b≠nb\ne nb=n,故 g(n)(n≠1)g(n)\;(n\ne 1)g(n)(n=1) 可以由前面已知的值唯一确定。同时我们发现,g(1)g(1)g(1) 的值似乎可以任取——这确实是不定积分的特点,很合理。
一般来说取 g(1)=1g(1)=1g(1)=1,为了让它是一个积性函数。复杂度显然是 O(nlnn)\mathcal O(n\ln n)O(nlnn) 的。
除法
实际上就是狄利克雷卷积的逆元。当然就理解为除法也没差。直接模仿 指数
中的方法,把式子列出来就行了。求 h=f/gh=f/gh=f/g 即
f(n)=∑ab=nh(a)g(b)⇒h(n)g(1)=f(n)−∑ab=n,a≠nh(a)g(b)\begin{aligned} f(n)&=\sum_{ab=n}h(a)g(b)\\ \Rightarrow h(n)g(1)&=f(n)-\sum_{ab=n,\;a\ne n}h(a)g(b) \end{aligned} f(n)⇒h(n)g(1)=ab=n∑h(a)g(b)=f(n)−ab=n,a=n∑h(a)g(b)
时间复杂度仍然 O(nlnn)\mathcal O(n\ln n)O(nlnn) 。
线性筛
线性筛,真的能线性吗?我们知道,它只需要求出 f(pk)(p∈Prime)f(p^k)\;(p\in\text{Prime})f(pk)(p∈Prime) 即可。但是这样的复杂度是多少呢?
一般来说,f(p)f(p)f(p) 能够被较快计算。所以我们只考虑 f(pk)(k⩾2)f(p^k)\;(k\geqslant 2)f(pk)(k⩾2),也就是严格的 “质数的幂”。其数量应当为
∑p∈Primep⩽n⌊logpn−1⌋\sum_{p\in\text{Prime}}^{p\leqslant\sqrt{n}}\left\lfloor\log_p n-1\right\rfloor p∈Prime∑p⩽n⌊logpn−1⌋
如果忽略 p∈Primep\in\text{Prime}p∈Prime 的条件,直接积分,我们知道这是对数积分 li(x)\text{li}(x)li(x) 函数,是 O(xlnx)\mathcal O({x\over\ln x})O(lnxx) 的,故结果是 O(n)\mathcal O(\sqrt n)O(n) 。除以质数密度 lnn\ln nlnn 就是 π(n)=O(nlnn)\pi(\sqrt{n})=\mathcal O({\sqrt{n}\over\ln n})π(n)=O(lnnn) 了。打表发现,真实值在 222 到 333 倍的 nlnn\sqrt n\over\ln nlnnn 之间,符合预期。
也就是说,质数的幂是非常少的。借助 wolframalpha\rm wolframalphawolframalpha,发现 ∀k∈N+,∫1lnkxdx=O[li(n)]=O(nlnn)\forall k\in\N^+,\;\int{1\over \ln^{k}x}\;\text dx=\mathcal O[\text{li}(n)]=\mathcal O({\sqrt{n}\over\ln n})∀k∈N+,∫lnkx1dx=O[li(n)]=O(lnnn),不可思议!
总结一下:哪怕 f(pk)f(p^k)f(pk) 是一个关于 kkk 的多项式(无论次数多大),其渐进复杂度都是 O~(n)\tilde{\cal O}(\sqrt{n})O~(n),不及筛法本身的复杂度 O(n)\mathcal O(n)O(n) 。
2022/7/25update\texttt{2022/7/25 update}2022/7/25 update:我发现 EI\sf EIEI 似乎给出了更严谨(不依赖在线数学工具)的复杂度证明。
Powerful Number\text{Powerful Number}Powerful Number
不太清楚应该怎么翻译,干脆保留英文名算了。
设唯一分解 n=∏pitin=\prod p_i^{t_i}n=∏piti,称 nnn 为 powerful number\text{powerful number}powerful number,当且仅当 ∀i,ti≠1\forall i,\;t_i\ne 1∀i,ti=1 。
等价定义是,∃a,b,s.t. n=a2b3\exist a,b,\text{ s.t. }n=a^2b^3∃a,b, s.t. n=a2b3 。所以我们可以估算 nnn 以内的 powerful number\text{powerful number}powerful number 的数量,至多为
∑a=1nna23≈∫1nna23da=O(n)\sum_{a=1}^{\sqrt{n}}\sqrt[3]{n\over a^2}\approx\int_{1}^{\sqrt{n}}\sqrt[3]{n\over a^2}\text da=\mathcal O(\sqrt n) a=1∑n3a2n≈∫1n3a2nda=O(n)
另一方面,所有的平方数都是 powerful number\text{powerful number}powerful number,所以其数量为 Θ(n)\Theta(\sqrt{n})Θ(n) 。
它有什么用。若我们需要求出积性函数 f(x)f(x)f(x) 的前缀和 ∑i=1nf(i)\sum_{i=1}^{n}f(i)∑i=1nf(i),考虑用另一个积性函数 g(x)g(x)g(x) 拟合它,满足 g(p)=f(p)(p∈Prime)g(p)=f(p)\;(p\in\text{Prime})g(p)=f(p)(p∈Prime) 。此时定义积性函数 h=f/gh=f/gh=f/g,则有
∑i=1nf(i)=∑i=1nh(i)∑j=1⌊ni⌋g(j)\sum_{i=1}^{n}f(i)=\sum_{i=1}^{n}h(i)\sum_{j=1}^{\lfloor{n\over i}\rfloor}g(j) i=1∑nf(i)=i=1∑nh(i)j=1∑⌊in⌋g(j)
由 g(p)=f(p)g(p)=f(p)g(p)=f(p) 可知 h(p)=0h(p)=0h(p)=0 。又因为 hhh 是积性函数(由 贝尔级数
即得),所以 h(n)≠0h(n)\ne 0h(n)=0 的必要条件是 nnn 是 powerful number\text{powerful number}powerful number!
h(n)h(n)h(n) 的计算可以用贝尔级数,暴力做多项式除法,复杂度是 ∑p∈Primelogp2n\sum_{p\in\text{Prime}} \log_p^{\thinspace 2} n∑p∈Primelogp2n,在前面 线性筛
中说过,这样的复杂度保持在 O(n)\mathcal O(\sqrt n)O(n) 。
枚举 powerful number\text{powerful number}powerful number,就是 O(n)\mathcal O(\sqrt n)O(n) 的。若我们可以快速计算 g(x)g(x)g(x) 的前缀和,那么 f(x)f(x)f(x) 的前缀和问题就得到了解决!
杜教筛
顺便介绍下 Dirichlet\rm DirichletDirichlet 双曲线法。和整除分块相似,不过在某些情况下更方便操作。设 h=f∗gh=f*gh=f∗g,记 f^\hat ff^ 为 fff 的前缀和,则
h^(n)=∑x⩽nf(x)⋅g^(⌊nx⌋)+∑x⩽ng(x)⋅f^(⌊nx⌋)−f^(⌊n⌋)⋅g^(⌊n⌋)\hat h(n)= \sum_{x\leqslant\sqrt{n}}f(x)\cdot\hat g\left(\big\lfloor{n\over x}\big\rfloor\right)+ \sum_{x\leqslant\sqrt{n}}g(x)\cdot\hat f\left(\big\lfloor{n\over x}\big\rfloor\right)- \hat f(\lfloor\sqrt{n}\rfloor)\cdot\hat g(\lfloor\sqrt{n}\rfloor) h^(n)=x⩽n∑f(x)⋅g^(⌊xn⌋)+x⩽n∑g(x)⋅f^(⌊xn⌋)−f^(⌊n⌋)⋅g^(⌊n⌋)
最初的形式:记 Dn={⌊nm⌋:m∈[1,n]}D_n=\{\lfloor{n\over m}\rfloor:m\in[1,n]\}Dn={⌊mn⌋:m∈[1,n]} 。设 f,gf,gf,g 在 DnD_nDn 位置上的前缀和是已知的,现在要求解 (f∗g)(f*g)(f∗g) 在 DnD_nDn 位置上的前缀和。对每个数套用上面的方法,复杂度为
∑x=1nnx≈∫1nnxdx=O(n3/4)\sum_{x=1}^{\sqrt{n}}\sqrt{n\over x}\approx\int_{1}^{\sqrt{n}}\sqrt{n\over x}\text{d}x=\mathcal O(n^{3/4}) x=1∑nxn≈∫1nxndx=O(n3/4)
略显缓慢。考虑预处理前 S(S>n)S\;(S>\sqrt{n})S(S>n) 项的结果,比如用 O(SlogS)\mathcal O(S\log S)O(SlogS) 的狄利克雷卷积,则剩余部分利用积分可知是 O(nS)\mathcal O({n\over\sqrt{S}})O(Sn) 的,取 S=(nlogn)2/3S=({n\over\log n})^{2/3}S=(lognn)2/3 有复杂度 O(n2/3log1/3n)\mathcal O(n^{2/3}\log^{1/3} n)O(n2/3log1/3n) 。
若前 SSS 项可以 线性筛
,取 S=n2/3S=n^{2/3}S=n2/3 就有复杂度 O(n2/3)\mathcal O(n^{2/3})O(n2/3) 了。
另一形式:已知 fff 和 (f∗g)(f*g)(f∗g) 在 DnD_nDn 位置上的前缀和,求 ggg 在 DnD_nDn 位置上的前缀和。已经 widely-known\text{widely-known}widely-known 了,略去。
课后习题
试求 ∑i=1n2c(i)\sum_{i=1}^{n}2^{c(i)}∑i=1n2c(i),其中 c(i)c(i)c(i) 为 iii 的不同质因子数量。对 998244353998244353998244353 取模。n⩽1012n\leqslant 10^{12}n⩽1012 。
直接利用贝尔级数,很容易看出端倪:
g(pk)=2⇒Fp(x)=1+x1−xg(p^k)=2\;\Rightarrow\;F_p(x)=\frac{1+x}{1-x} g(pk)=2⇒Fp(x)=1−x1+x
令 Ap(x)=11−xA_p(x)={1\over 1-x}Ap(x)=1−x1 即 a(x)=1a(x)=1a(x)=1,令 Bp(x)=1+xB_p(x)=1+xBp(x)=1+x 即 b(x)=[b(x)=[b(x)=[ xxx 不含平方因子 ]]],则 g(x)=(a∗b)(x)g(x)=(a*b)(x)g(x)=(a∗b)(x) 。于是
∑i=1ng(i)=∑i=1nb(i)⌊ni⌋\sum_{i=1}^{n}g(i) =\sum_{i=1}^{n}b(i)\left\lfloor{n\over i}\right\rfloor i=1∑ng(i)=i=1∑nb(i)⌊in⌋
整除分块,问题变为计算前缀和 ∑i=1vB(i)\sum_{i=1}^{v}B(i)∑i=1vB(i) 。利用容斥显然有
∑i=1vb(i)=∑j=1vμ(j)⌊vj2⌋\sum_{i=1}^{v}b(i)=\sum_{j=1}^{\sqrt{v}}\mu(j)\left\lfloor{v\over j^2}\right\rfloor i=1∑vb(i)=j=1∑vμ(j)⌊j2v⌋
我们知道这样一次是 O(v3)\mathcal O(\sqrt[3]{v})O(3v) 的,所以总复杂度应该是
∑i=1nni3≈n3∫1ni−13di=n3[32i23]1n=O(n23)\sum_{i=1}^{\sqrt{n}}\sqrt[3]{n\over i} \approx\sqrt[3]{n}\int_{1}^{\sqrt{n}}i^{-1\over 3}\text di =\sqrt[3]{n}\left[\frac{3}{2}i^{2\over 3}\right]_{1}^{\sqrt{n}} =\mathcal O(n^{2\over 3}) i=1∑n3in≈3n∫1ni3−1di=3n[23i32]1n=O(n32)
稍微有点慢。想想优化点:bbb 和 ggg 同时涉及整除,二者是否可能合并?于是换一个角度推导有
∑i=1ng(i)=∑i=1na(i)∑j=1⌊ni⌋b(j)\sum_{i=1}^{n} g(i)=\sum_{i=1}^{n}a(i)\sum_{j=1}^{\lfloor{n\over i}\rfloor}b(j) i=1∑ng(i)=i=1∑na(i)j=1∑⌊in⌋b(j)
大力展开 b(x)b(x)b(x) 的前缀和,则有
=∑i=1n∑j=1+∞⌊nij2⌋μ(j)=∑j=1nμ(j)∑i=1⌊nj2⌋⌊nij2⌋=∑j=1nμ(j)⋅V(⌊nj2⌋)=\sum_{i=1}^{n}\sum_{j=1}^{+\infty}\left\lfloor{n\over ij^2}\right\rfloor \mu(j)=\sum_{j=1}^{\sqrt{n}}\mu(j)\sum_{i=1}^{\lfloor{n\over j^2}\rfloor}\left\lfloor{n\over ij^2}\right\rfloor\\ =\sum_{j=1}^{\sqrt{n}}\mu(j)\cdot V\left(\left\lfloor{n\over j^2}\right\rfloor\right) =i=1∑nj=1∑+∞⌊ij2n⌋μ(j)=j=1∑nμ(j)i=1∑⌊j2n⌋⌊ij2n⌋=j=1∑nμ(j)⋅V(⌊j2n⌋)
对 ⌊nj2⌋\lfloor{n\over j^2}\rfloor⌊j2n⌋ 整除分块,众所周知是 O(n3)\mathcal O(\sqrt[3]{n})O(3n) 的。计算 V(n)V(n)V(n) 的复杂度显然是 O(n)\mathcal O(\sqrt{n})O(n),于是复杂度是
∑j=1n3nj2≈n∫1n3djj=O(nlnn)\sum_{j=1}^{\sqrt[3]{n}}\sqrt{n\over j^2}\approx\sqrt{n}\int_{1}^{\sqrt[3]{n}}\frac{\text dj}{j}=\mathcal O(\sqrt{n}\ln n) j=1∑3nj2n≈n∫13njdj=O(nlnn)
这样就很好了嘛。
【学习笔记】积性函数相关推荐
- 【原创】积性函数和狄利克雷卷积学习笔记 未完成
Index 狄利克雷卷积和积性函数 〇.说在前面 一.一些定义 1.数论函数 2.积性函数与完全积性函数 (1)定义 (2)举例 ①(普通)积性函数 ②完全积性函数 (3)性质 二.狄利克雷卷积 1. ...
- 积性函数与Dirichlet卷积 学习小记
前言 首先感谢 XHM 大佬的悉心指导,我懂得了不少~. 链一下他关于这方面的见解.博客--XHM 的Dirichlet卷积 学习小记 一些定义 回归正题,这次我学习了一下狄利克雷卷积方面的知识. 先 ...
- 【算法专题】积性函数
[参考] ★浅谈一类积性函数的前缀和 by skywalkert 任之洲数论函数.pdf 论逗逼的自我修养之寒假颓废记 by jiry_2 杜教筛 [学习笔记][更新中] by Candy? [变化技 ...
- 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- 积性函数性质-POJ2480
https://vj.xtuacm.cf/contest/view.action?cid=146#problem/D 参考:http://www.cnblogs.com/xiaowuga/p/7161 ...
- jquery学习笔记及常用函数封装
二.JQuery 学习笔记及常用函数封装 https://download.csdn.net/download/weixin_42530002/13087988 1.JQuery入门 (1).css选 ...
- 牛客 华华给月月出题 (积性函数+欧拉筛+快速幂)
题目描述 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: ⊕符号表示异或和,详见样例解释. 虽然月月写了个程序暴力的算出了答案,但是为了确保自己的答案没有错,希 ...
- 【数学专题】莫比乌斯反演与积性函数
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的模板整合计划 目录 莫比乌斯反演 AcWing 2702. problem b AcWing 1358. 约数个数和(莫 ...
- 积性函数、狄利克雷卷积、莫比乌斯反演
狄利克雷卷积 定义: f∗g(n)=∑d∣nf(d)g(nd)f*g(n)=\sum_{d|n}f(d)g(\frac nd)f∗g(n)=d∣n∑f(d)g(dn) 计算的时候可以把枚举约数转换 ...
最新文章
- CSS魔法堂:说说Float那个被埋没的志向
- boost::geometry::centroid用法的测试程序
- C++ Data语意学
- 大众继续深耕SUV市场:5款新车型先于上海车展登场,ID. ROOMZZ成点睛之笔
- 3485. 最大异或和
- php 将前端网页输出成unicdoe编码
- JavaScript使用正则表达式进行邮箱表单验证实例
- windows performance
- 快速添加百度网盘文件到Aria2 猴油脚本
- 韩国服务器性能排行榜,2019韩国云服务器排名
- 零基础CSS入门教程(17)–表格样式
- 在cmd的命令下 用Mysql中建立一个表
- 用纯CSS实现优雅的tab页
- 世界标准时间(UTC) 常识
- 比较线程子进程 占用的内存情况
- Java中文件File
- ilove中文_I Love You,答えてくれ中文歌词翻译
- Android画中画
- 现象类话题和策论32133框架
- PHP银行卡自动转账,自动转账