不定期更新(×)
定期不更新(√)
n div i有2√n个取值
https://blog.csdn.net/gmh77/article/details/88142031
显然n div i最多只有2√n个取值,则s和g最多只有2√n个取值
对于≤√n的数可以直接存,处理也很方便,对于>√n的可以用n div x来存
n div a div b=n div (a*b)
来自https://blog.csdn.net/semiwaker/article/details/73822107

n div (n div x)=x (x≤√n)
设n=ax+b(0≤b<x)
⌊n⌊nx⌋⌋=x
⌊ax+b⌊ax+bx⌋⌋=x
⌊ax+ba⌋=x
⌊x+ba⌋=x
如果ba<1那么结论就可以成立
即a>b
因为n=ax+b
所以a=⌊nx⌋,b=nmodx
因为x⩽sqrt(n),所以⌊nx⌋⩾sqrt(n),即a⩾sqrt(n)
因为b=nmodx,所以b<x,即b<sqrt(n)
所以a⩾sqrt(n)>b,即当x⩽sqrt(n)时原式成立
(用于min25筛)
平方求和公式
不是求平方和
求∑ni=1i2
根据高斯求和公式,∑ni=1i2=∑ni=112(i+n)(n−i+1)(i2=i*i,i出现了i次)
=12∑ni=1n2−i2+i+n
=12(n2(n+1)+12(1+n)n−∑ni=1i2)
=12(n(n+1)(n+12)−∑ni=1i2)
联立求解
∑ni=1i2=12(n(n+1)(n+12)−∑ni=1i2)
2∑ni=1i2=n(n+1)(n+12)−∑ni=1i2
3∑ni=1i2=n(n+1)(n+12)
∑ni=1i2=n(n+1)(n+12)3
∑ni=1i2=n(n+1)(2n+1)6
调和级数公式
https://blog.csdn.net/gmh77/article/details/98226712
∑ni=11i=ln(n)+γ+Xn(γ为欧拉常数,当n趋近与无穷大时Xn约等于0)
∑ni=11i=∫n+111⌊x⌋dx
=∫n+111xdx+∫n+11(1⌊x⌋−1x)dx
=ln(n+1)+∫n+11(1⌊x⌋−1x)dx
=ln(n)+γ+Xn(n+1≈∞)
≈ln(n)+γ(n+1≈∞)
欧拉常数计算
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#define fo(a,b,c) for (a=b; a<=c; a++)
#define fd(a,b,c) for (a=b; a>=c; a--)
#define E 0.0001
using namespace std;
long double euler,i;
int main()
{
i=1;
while (i<=10000)
{
euler+=(1.0/floor(i)-1.0/i);
i+=E;
}
printf("%0.10Lf\n",euler*E);
}
算得γ=0.5771351607
斐波那契数列性质
https://blog.csdn.net/gmh77/article/details/98583079
①gcd(F(n−1),F(n))=1
②F(n)=F(m+1)F(n−m)+F(m)F(n−m−1)
③gcd(F(n),F(m))=F(gcd(n,m)
证明:
①
反证,若gcd(F(n−1),F(n))=a(a>1),那么a|F(n-1)、a|F(n)
因为F(n)=F(n-1)+F(n-2),则a|F(n-2)
如此类推,发现a|F(1)
因为a>1且F(1)=1,所以不成立
②
归纳:已证得F(n)=F(m)F(n−m+1)+F(m−1)F(n−m),边界为F(n)=F(2)F(n−1)+F(1)F(n−2)(m=1)
F(n)=F(m)F(n−m+1)+F(m−1)F(n−m)
F(n)=F(m)F(n−m)+F(m)F(n−m−1)+F(m−1)F(n−m)
F(n)=(F(m)+F(m−1))F(n−m)+F(m)F(n−m−1)
F(n)=F(m+1)F(n−m)+F(m)F(n−m−1)
③
gcd(F(n),F(m))=gcd(F(m+1)F(n−m)+F(m)F(n−m−1),F(m))
gcd(F(n),F(m))=gcd((F(m+1)F(n−m)+F(m)F(n−m−1))modF(m),F(m))
因为gcd(a∗b,c)=gcd(b,c)(ac互质)且gcd(F(m),F(m+1))=1
gcd(F(n),F(m))=gcd(F(n−m),F(m))
可以发现上面的式子类似求gcd
因为gcd(a,b)=gcd(gcd(a,b),0)
类比可得gcd(F(n),F(m))=gcd(F(gcd(n,m)),F(0))=F(gcd(n,m))(F(0)=0)
(这个式子对多个数也是成立的)
参考&其它性质:https://www.cnblogs.com/Milkor/p/4734763.html
欧拉函数性质
https://blog.csdn.net/gmh77/article/details/99066792
n=∑d|nφ(d)
设F(n)=∑d|nφ(d),则
F(n)∗F(m)=∑i|nφ(i)∗∑j|mφ(j)(nm互质)
=∑i|n∑j|mφ(i∗j)
=F(n∗m)
所以证得F(n)是积性函数
求F(pk)(p为质数)
F(pk)=∑ki=0φ(pi)
=(∑ki=1pi∗(1−1p))+1
=(∑ki=1pi−1∗(p−1))+1
=(∑ki=1pi−pi−1)+1
=pk−p0+1
=pk
由于F(n)是积性函数,且F(pk)=pk,所以可以推得F(n)=n(对于任意n)
所以
F(n)=∑d|nφ(d)
n=∑d|nφ(d)
参考&其它性质:https://blog.csdn.net/liuzibujian/article/details/81086324
∏p−1i=0(x−i)=xp−x(modp)p∈prime
时隔六个月我又更了
大概是因为点值相同所以等价
具体证明:https://www.cnblogs.com/Dup4/p/10750749.html
∏1x2=π26
有这条式子但是不会证
∑gcd(i,n)=1i=12φ(n)n
当n>2时若gcd(n,i)=1,则gcd(n,n-i)=1
那么gcd=1的会成对存在,有phi(n)/2对,每对相加为n
n=2时刚好满足(巧合),n=1要特判
∑ki=1i(ki)=2k−1k
i(ki)=i∗k!i!(k−i)!=k∗(k−1)!(i−1)!(k−i)!=(k−1i−1)
σ0(nm)=∑i|n∑j|m[(i,j)=1]
σ0是约数个数
每个因子p(n中a1,m中a2)是独立的,因此等价于算了(a1+1)+(a2+1)-1=a1+a2+1次,刚好是σ0的计算方法
斐波那契通项公式
https://www.cnblogs.com/gmh77/p/13387949.html
φ(ab)=φ(a)φ(b)∗(a,b)φ((a,b))
这是当ab不互质的情况,考虑直接相乘时对于ab的共同质因子会多乘上一个(p-1)/p,所以要将其消掉
而后面的(a,b)φ((a,b))就是把共同(p-1)/p除掉
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】