【学习笔记】数论
哈哈。
正确性和复杂度的证明没给就是不会或者懒得写。
基础式子,定义
多个数最大的公因数用
积性函数
若函数
更甚,若函数
若
,这个应该很简单,令 且 ,那么 。所以 是积性函数, , 定义是 这个值的 次方,这个应该也很简单,每一个 ,那么它们的 次方 ,也即 。 ,这个显然吧。 。挺好记的记就好了。
有一些常用的函数如下:
- 单位函数
,完全积性。卷积中有用。 - 恒等函数
,完全积性,其中 简记为 。 - 常数函数
,完全积性。 - 除数函数
,其中 代表 的因子个数,简记为 , 代表 的因子和,简记为 。积性。对于 还有一个特殊性质: 。
main
欧几里得定理
可以用来求两个数的
Il int gcd(int x,int y){return (y?gcd(y,x%y):x);}
扩展欧几里得算法(扩欧,exgcd)
给定
由欧几里得定理
所以我们如果得到了
所以我们可以考虑递归求,找到一个边界
递归按求
扩欧得到的解一定满足
裴蜀定理(贝祖定理)
方程
这个很简单,
裴蜀能推广到多个数,不证。
关于逆元
费马小定理
证明:
- 先假设有一个序列
,取一个不是 的倍数 ,有 。先证明这个式子。 - 也就是所有
互不相等。考虑反证,假设有 ,因为 互质,显然就有 ,产生了冲突。 - 所以
,那么就有 。
欧拉筛(线性筛)
板子会背就行。板子里面在
根据数学知识我们知道
威尔逊定理
学长说没什么用。正整数
卢卡斯定理
用于解决大组合数的取模,式子是
中国剩余定理(CRT)
对于
证明:
- 对于
, - 此时
- 所以此时的
是方程组的解。唯一性不会证明不证了。
扩展中国剩余定理(exCRT)
普通的 CRT 适用范围太小了,要求过于严格,exCRT 可以基本做到全方面碾压普通 CRT。同样是
现在我们先考虑只有两个方程
还看到另一种好理解的办法,我们假设已经求出来前
记得输出时再对答案取一次模,无论在过程中是否有取模。
欧拉函数
如果是仅求一个数的欧拉函数值,可以直接在质因子分解的时候做,对于一个包含的质因子
然后欧拉函数可以直接筛的。对于
注意这里求
性质:
性质:对于任意
证明:
- 如果
是质数,那么 为偶数。否则 。 - 对于任何
,乘上的 会让 变成偶数。 - 如果
只有一种质因子 ,因为 至少为 ,而上式只能让 乘一个 ,仍然是偶数。
根据上面那条性质我们可以得知对一个数
欧拉定理
若有
证明可以参考费马小定理的证明。可以构造一个长度为
扩展欧拉定理
能够进行模意义下的光速幂,可以支持在指数过大比如无法存下来的时候将指数
显然通过这个我们能将指数降到一个
欧拉反演
来自欧拉函数的一个性质
感性证明:
- 假设有
这 个分数,现约分到最简形式。 - 那么对于分母为
的分数 ,有 互质且 。我们发现分母为 的分数个数就是 。 - 因为是约分,所以分母
一定满足 ,全部加起来就是总分数个数 。
所以把
欧拉反演公式:
拉格朗日定理
对于
阶
- 若有
且 ,则有 。 - 显然有
,与阶最小性相冲突。
由此我们也可以推出若
令
必要性证明:
-
由
可得 。 -
由前文性质可知
。又由于 所以有 。即为 。
充分性证明:
-
由定义
可知 ,即 ,所以有 。 -
又因为有
所以有 。同理也有 。所以可以得到 。 -
另一方面,
,所以有 。 -
结合起来得到
。
若
原根
启动!?
正整数
当且仅当
模
若
找最小原根直接枚举即可,复杂度不会太大?
库默尔定理
对
整除分块(数论分块)
莫比乌斯函数
定义莫比乌斯函数
Il void init(){ mu[1]=1;memset(isp,1,sizeof(isp)); for(Ri i=2;i<=n;i++){ if(isp[i])pr[++pn]=i,mu[i]=1; for(Ri j=1;j<=pn**i*pr[j]<=n;j++){ isp[i*pr[j]]=0;mu[i*pr[j]]=-mu[i]; if(i%pr[j]==0){mu[i*pr[j]]=0;break;} } } return; }
卷积(狄利克雷卷积)
对于两个数论函数
常见的 卷积式:不证。
。 。 。 。 。
莫比乌斯反演
反演结论:
证明:
- 我们证明
,也可以表达成 ,和上面的形式是一样的。 - 因为带有平方因子的数都不会造成贡献,令
。 - 则
。所以所有 都是 中一些 组合出来的。排列组合得 。 - 典的二项式定理,得上式
。 代表 没有任何质因子,所以原式 。
如果有
证明:
。- 最后一步变换了求和顺序,容易发现每一个原本对应的
现在仍然对应一个 所以仍然是正确的。 - 后面那一块可以用一个反演结论。所以
。
如果有
证明:
- 考虑和上面类似的证明方式。把
用 的倍数形式表示。 。 - 把
拆开成 。 。枚举 再枚举 的倍数等价于枚举 的倍数然后枚举可行的 。 。 - 后面那一坨还是反演结论,
。
杜教筛
较快地计算某些数论函数的前缀和,即在低于线性的时间内计算
对于任意数论函数
考虑
得到杜教筛核心式子
朴素杜教筛的复杂度为
有一个优化,即提前筛出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)