ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[康复计划]-数论基础

2021-09-16 18:05:38  阅读:176  来源: 互联网

标签:lfloor frac 数论 康复 rfloor 计划 varphi aligned sum


感觉这几个月做的数学都是把数学当工具的数学题,欧拉函数、莫比乌斯之类的好像上一次做还是在上一次 好几年前,于是在洛谷上找了几个专题来练一练。隔了感觉有两三年了,其实好多东西都忘差不多了。

(待更新)


目录

零碎知识

一些可能会用到的零碎的知识点,最近做题遇上的。

  • 对于实数\(n,m,x\),有\(\begin{aligned}\lfloor \frac{\lfloor n\rfloor+m}{x}\rfloor=\lfloor\frac{n+m}{x}\rfloor\end{aligned}\),对于上取整同样成立。
    • 因为是在复习就直接引入一个更强的命题了:对于\(\R\)上连续且单调的函数\(f(x)\),如果有\(f(x)\in \Z\rightarrow x\in \Z\),那么就总有\(\begin{aligned}\lfloor f(x)\rfloor=\lfloor f(\lfloor x\rfloor )\rfloor\end{aligned}\)成立。
    • ①若\(x\in \Z\),则$x=\lfloor x\rfloor $,直接成立。
    • ②否则,\(x\not\in\Z\),由单调性给出\(f(x)> f(\lfloor x\rfloor)\),加上取整:\(\lfloor f(x)\rfloor\geq\lfloor f(\lfloor x\rfloor )\rfloor\),假设它们不相等,即若\(\lfloor f(x)\rfloor>\lfloor f(\lfloor x\rfloor )\rfloor\),则\(\lfloor f(x)\rfloor \in(f(\lfloor x\rfloor ),f(x)]\),接着连续函数介值定理告诉我们,存在\(y:y\in (\lfloor x\rfloor ,x],f(y)=\lfloor f(x)\rfloor\),但是因为\(x\not\in\Z\),\((\lfloor x\rfloor ,x]\)里面是不存在整数的,矛盾,\(Q.E.D.\)
    • 证明了这个更强的命题,上面那句话就只要让\(f(n)=\frac{n+m}{x}\)就行,不难验证函数满足我们要的性质。特别地,在做一些除法分块的时候,我们会用得上像是\(\begin{aligned}\lfloor \frac{\lfloor \frac{n}{d}\rfloor}{x}\rfloor=\lfloor\frac{n}{dx}\rfloor\end{aligned}\)这样的结论,也可以从右往左,把一个东西凑成能分块的形式。
    • 类似地让\(f(n)=\sqrt n\)也满足性质,所以\(\begin{aligned}\lfloor \sqrt{ \lfloor n\rfloor }\rfloor =\lfloor \sqrt {n}\rfloor \end{aligned}\)也是成立的。
    • 上面所有证明把下取整改成上取整,同样成立。
  • 约数个数函数\(d(n)=\sum_{d|n}1\),对于里面的乘积的\(d(nm)\),它可以被写成\(\begin{aligned}d(nm)=\sum_{i|n}\sum_{j|m}[(i,j)=1]\end{aligned}\)。
    • 里面那个\([(i,j)=1]\)可以展成莫比乌斯。
    • 里面的\([(i,j)=1]\)是一个比写成1要更强的条件,它原本就是想统计\(ij\)有多少对,但如果直接写1,就可能把一个约数算了多次,比如\(d(4\times 6)\)这种,有\(2|4,2|6\)和\(4|4,1|6\),4这个约数被算了好几次。
    • 回顾\(d(p_1^{q_1} p_2^{q_2}\dots)=(q_1+1)(q_2+1)\dots\)这个式子,其实我们只要保证第\(k\)个质因数\(p_k\)被恰好枚举\(q_k+1\)次,所以我们干脆就让每一轮枚举的时候,保证对于每个\(p_k\),\(n\)和\(m\)只有一个贡献了\(p_k\),也就是\((i,j)=1\)这个条件。
    • 感觉这个证明好无聊啊

欧拉函数和欧拉定理

因为是复习就不搞什么概念的引入了,数论里(英文里直接搜Euler function搜到的是欧拉的另一个函数,一般数论的欧拉函数叫Euler's totient function)我们定义欧拉函数\(\begin{aligned}\varphi(n)\end{aligned}\)表示\(1,2,\dots,n\)这些数里和\(n\)互质的数的个数,一般写成\(\begin{aligned}\varphi(n)=\sum_{i=1}^n [(n,i)=1]\end{aligned}\)这样子(后面会见到,写成这种艾佛森记号(也就是[表达式]这种记号)的形式可以用莫比乌斯函数搞一些操作啥的),这里我们说欧拉函数是个积性函数,即:\(\forall (n,m):f(n)f(m)=f(nm)\)。具体证明不写了,冲不动了。

算法竞赛里求值才是我们关心的,首先是一个比较显然的:如果\(p\)是质数,那样\(\varphi(p)=p-1\),进一步容易给出\(\varphi(p^k)=p^k-p^{k-1}=p^k(1-\frac{1}{p})\),于是不难给出一般的求法\(\begin{aligned}\varphi(n)=n\prod_{p_i} (1-\frac{1}{p_i})\end{aligned}\)。

于是,积性能用来做线性筛,而要求单个欧拉函数,如果\(n\)不是很大,就直接用上面的式子,\(O(\sqrt n)\)地求出单个\(\varphi(n)\),要更快的做法就是Pollard-Rho来做质因数分解。

接着从同余的角度看,\(\varphi(n)\)也可以说是\(n\)的既约剩余系的大小,于是$$\begin{aligned}(a,m)=1\rightarrow a{\varphi(m)}\prod_{i=1}{\varphi(m)} x_i=\prod_{i=1}{\varphi(m)}(ax_i)\equiv\prod_{i=1}{\varphi(m)}x_i(\bmod m)\end{aligned}$$

也就得到了一般说的欧拉定理\((a,m)=1,a^{\varphi(m)}\equiv 1(\bmod m)\)。

然后还有一个更强的扩展欧拉定理:

  • 当\(b<\varphi(m)\)时,\(\begin{aligned}\end{aligned}\)\(\begin{aligned}a^b\equiv a^b(\bmod m)\end{aligned}\)
  • 否则,\(b\geq \varphi(m)\)时,$$\begin{aligned}a^b\equiv a^{b \bmod \varphi(m)+\varphi(m)}(\bmod m)\end{aligned}$$。

注意\(b<\varphi(m)\)的时候不一定成立,这一版也是一个题比较麻烦的地方。

扩展欧拉定理主要还是用来处理比较大的指数\(b\),以及注意到会把模\(m\)的问题转化为模\(\varphi(m)\)的问题,而\(\varphi(\varphi(\dots(m)))\)这种套娃下降的是非常快的,所以经常可以用来做一些套娃操作,比如luogu4139这题,求\(\begin{aligned}2^{2^{2^{\dots}}}\bmod p\end{aligned}\)的答案,设答案是\(x\),就可以转化成\(2^{x\bmod \varphi(p)+\varphi(p)}\),一直迭代到\(p=1\)为止。

还有CF上一个题(https://www.luogu.com.cn/problem/CF906D )也是用类似的性质。

卷积、莫比乌斯函数和莫比乌斯反演

冲不动了,懒得写了,有人看再更新。

一些练习

https://www.luogu.com.cn/problem/P2303 ,求\(\sum _{i=1}^n (i,n)\)的值,原式写成\(\sum_{i=1}^n \sum_{d=1}^n[(i,n)=d]\),这里上下界都是\(n\),就不上莫比乌斯了,直接就能写成欧拉函数:\(\sum_{d=1}^n \sum_{i=1}^n[(\frac{i}{d},\frac{n}{d})=1]\),最后就是\(\sum_{d|n} \varphi(\frac{n}{d})\)。

https://www.luogu.com.cn/problem/P3327 ,用到前面的结论,先写成\(\begin{aligned}\sum_{i=1}^n\sum_{j=1}^m \sum_{x|i} \sum_{y|j}[(x,y)=1]\end{aligned}\),然后大胆地把后面的写成莫比乌斯\([(x,y)=1]=\sum_{d|(x,y)}\mu (d)\),原来的式子一通化简成\(\begin{aligned}\sum_{d=1}^n \mu (d)\sum_{x=1}^{\lfloor \frac{n}{d}\rfloor}\lfloor\frac{n}{dx}\rfloor \sum_{y=1}^{\lfloor \frac{m}{d}\rfloor }\lfloor \frac{m}{dy}\rfloor \end{aligned}\),后面的取整就用到前面提到的性质,写成能除法分块的形式,然后\(O(\sqrt n)\)地解决。

https://www.luogu.com.cn/problem/P2257 ,和上一题类似,先改成枚举质数,然后上一个莫比乌斯,\(\begin{aligned}=\sum_{p\in \mathcal{P}}\sum_{d=1}^n \mu(d)\lfloor \frac{n}{pd}\rfloor \lfloor \frac{m}{pd}\rfloor \end{aligned}\)的形式,但写成这样还是不够快,这里我们做一个小小的变量替换,令\(T=pd\),然后交换次序,\(p\)加上一个\(p|T\)的限制:\(\begin{aligned}\sum_{T=1}^n \lfloor \frac{n}{T}\rfloor \lfloor \frac{m}{T}\rfloor \sum_{p\in \mathcal{P},p|T} \mu(\frac{T}{p})\end{aligned}\)。后面的式子可以\(O(\frac{n}{\log n}\log n)=O(n)\)地预处理出来,结合前缀和跟前面除法分块。

标签:lfloor,frac,数论,康复,rfloor,计划,varphi,aligned,sum
来源: https://www.cnblogs.com/yoshinow2001/p/15294579.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有