数论公式总结
@
- 我的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
\]
上面这两个是伯努利多项式,暂时还没学
更新中...
作者:danzh
QQ:1244536605
CSDN(和博客园同步):https://blog.csdn.net/weixin_42431507
-----------------------------------------------------------------------------------------------
朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其
它人怎么样,我们也能够保持自己的本色走下去。
—clj