数论公式总结

@

  • 我的csdn和博客园是同步的,欢迎来访danzh-博客园~
    欢迎关注~

1.中间式子&常用技巧

\[[n==1]=\sum_{d|n}\mu (d) \]

这个式子用来替换条件式,从而降低复杂度

\[\sum_{i=1}^n\sum_{j=1}^{[\frac ni]}f(i)=\sum_{i=1}^n\sum_{j=1}^{[\frac ni]}f(j) \]

被加数可以任意以\(i\)\(j\)作为索引

\[\sum_{i=1}^n\sum_{j=1}^{[\frac ni]}f(ij)*g(i)*h(j)=\sum_{k=1}^nf(k)*\sum_{d|k}g([\frac kd])h(d) \]

\(k=ij\),然后枚举\(k\)。这里的\(i\)可以不从1枚举到n,可以是任意数,前提是保证后面的d和i性质一样(比如i是[1,n]范围内的质数,那么d|k且d是质数),且计算时保证关于i的函数和关于d的函数是同一性质(还是刚才的例子,式子左边是g(i),右边以d作为自变量的也应该是g而不应该是h,但如果i是顺序从1枚举到n则没有这个限制)

\[gcd(i,j)=\sum_{d|i且d|j}\phi(d) \]

可以用这个式子去反演更简单

2.\(gcd\)

\[\sum_{i=1}^{n}\sum_{j=1}^n[gcd(i,j)==x]=2*pre\phi([\frac nx]) -1 \]

\[\sum_{i=1}^{n}\sum_{j=1}^m[gcd(i,j)==x]=\sum_{d=1}^{[\frac nx]}\left( \mu(d)*[\frac {n}{dx}]*[\frac {m}{dx}]\right) \]

\[\sum_{i=1}^{n}\sum_{j=1}^ngcd(i,j)=\sum_{d=1}^n\left(2d*pre\phi[\frac nx]-d\right) \]

\[\sum_{i=1}^{n}\sum_{j=1}^mgcd(i,j)=\sum_{x=1}^{n}\left(x*\sum_{d=1}^{[\frac nx]}\left( \mu(d)*[\frac {n}{dx}]*[\frac {m}{dx}]\right)\right) \]

\[\prod_{i=1}^n\prod_{j=1}^n\frac{lcm(i,j)}{gcd(i,j)}=\prod_{i=1}^n\prod_{j=1}^n\frac{ij}{gcd(i,j)^2}=(n!)^{2n}*\left(\prod_{x=1}^nx^{2pre\phi([\frac nx])-1}\right)^{-2} \]

可能需要欧拉定理,注意乘法逆元的使用

\[gcd(x^{a}-y^a, x^b-y^b)=x^{gcd(a,b)-y^{gcd(a,b)}} \]

\[\sum_{i=1}^n\sum_{j=1}^ii[gcd(i,j)=1]=\sum_{i=1}^ni\sum_{j=1}^i[gcd(i,j)=1]=\sum_{i=1}^n\sum_{j=1}^ii\phi(i) \]

这个直接用欧拉函数就好了

\[\sum_{i=1}^ni[gcd(i,n)=1]=\frac {[n=1]+n\phi(n)}{2} \]

1-n中与n互质的数的个数显然是\(\phi(n)\),而这里需要求的不是个数而是求这些数的和。推导如下:
先把条件式\([gcd(i,n)==1]\)反演一下:

\[\sum_{i=1}^ni\sum_{d|gcd(i,n)}\mu(d)=\sum_{i=1}^ni\sum_{d|i且d|n}\mu(d) \]

然后改为枚举d

\[\sum_{d=1}^n\mu(d)\sum_{i=1}^ni[d|i且d|n]=\sum_{d=1}^n\mu(d)\sum_{i=1}^{\frac nd}id[d|n]=\sum_{d|n}\mu(d)d\sum_{i=1}^{\frac nd}i \]

然后等差数列求一下和:

\[\sum_{d|n}\mu(d)d\frac {(1+\frac nd)*\frac nd}{2} \]

由于d|n,所以\(\frac nd\)就是整数,所以\(d*[\frac nd]=n\),所以:

\[\sum_{d|n}\mu(d)\frac {(1+\frac nd)n}{2}=\frac n2\sum_{d|n}\mu(d)(1+\frac nd)=\frac n2\left(\sum_{d|n}\mu(d)+\sum_{d|n}\frac {\mu(d)n}d\right) \]

注意到欧拉函数和莫比乌斯函数的关系:\(\sum_{n|d}\frac {\mu(d)}d=\frac {\phi(n)}n\)带入上式:

\[\frac n2\left(\sum_{d|n}\mu(d)+n*\frac{\phi(n)}{n}\right)=\frac n2\left([n==1]+\phi(n)\right)=\frac {[n==1]+n\phi(n)}2 \]

\[\sum_{i=1}^n\sum_{j=1}^ij[gcd(i,j)=1]=\frac 12\sum_{i=1}^ni\phi(i)+\frac{[n>=1]}{2} \]

推导:用上面的就行了

3.\(d\)

\[d(i*j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)==1] \]

\[\sum_{i=1}^n\sum_{j=1}^md(i*j)= \sum_{d=1}^n\left(\mu(d)*pred([\frac nd])*pred([\frac md])\right) \]

4.\(\mu\)

\[\sum_{i=1}^n\sum_{j=1}^{[\frac mi]}ij\mu(i)=1 \]

\[\sum_{d|n}\frac {\mu(d)}{d}=\frac {\phi(n)}{n} \]

5.\(\phi\)

\[\sum_{d|n}\frac {\mu(d)}{d}=\frac {\phi(n)}{n} \]

\[\sum_{d|n}\phi(d)=n \]

6.\(\sigma\)

\[\sum_{i=1}^n\sum_{j=1}^m\sigma(gcd(i,j))=\sum_{x=1}^n\sigma(x)\sum_{d=1}^{[\frac nx]}\left( \mu(d)*[\frac {n}{dx}]*[\frac {m}{dx}]\right) \]

\[\sum_{i=1}^n\sum_{j=1}^m\sigma(gcd(i,j))*[\sigma(gcd(i,j))<=a]=\sum_{k=1}^n[\frac {n}{k}][\frac {m}{k}]g(k),其中g(k) =\sum\limits_{d|k}\sigma(d)*[\sigma(d)<=a]\mu([\frac kd]) \]

这里分块,然后\(g(k)\)的区间和用线段树维护,每次\(a\)修改,用线段树给\(g(k)\)修改

7.因子相关

\[f(x)=\sum\limits_{i=1}^{[sqrt(x)]}\mu(i)*[\frac{x}{i^2}] \]

[1,x]范围内所有数不含平方因子的数的数量

8.一些求和

\[\sum_{i=1}^ni^3=\sum_{i=1}^n\sum_{j=1}^nij=\left(\frac {n(n+1)}2 \right)^2 \]

\[\sum_{i=1}^ni^2=\frac {n(n+1)(2n+1)}6 \]

上面这两个是伯努利多项式,暂时还没学

更新中...

posted @ 2019-08-03 22:55  danzh  阅读(792)  评论(0编辑  收藏  举报