首页 > 其他分享 >数论总结

数论总结

时间:2024-01-27 16:36:24浏览次数:29  
标签:总结 lfloor frac gcd limits 数论 sum rfloor

一.定义

\(\varphi(n)=\sum\limits_{i=1}^{n}[\gcd(i,n)=1]\),即 \(n\) 以内与 \(n\) 互质的数的个数,叫做欧拉函数,念做 /faɪ/

\(\mu(n)=\begin{cases}1 &n=1\\0 &\exists i\in[1,m],k_i>1 \\(-1)^m & \forall i \in[1,m],k_i=1 \end{cases}\),记 \(n=\prod\limits_{i=1}^{m}p_i^{k_i}\),叫做莫比乌斯函数,念做 /mju:/

下面的表从此博客copy来:

函数名称 符号 定义 积性 卷积
恒等函数 \(I(n)\) 或 \(1(n)\) \(1\) 完全积性函数
元函数 \(\varepsilon(n)\) 或 \(e(n)\) \([n=1]\) 完全积性函数 \(\varepsilon=\mu*1\)
单位函数 \(id(n)\) \(n\) 完全积性函数 \(id=\varphi*1\)
幂函数 \(id^x(n)\) \(n^x\) 完全积性函数
莫比乌斯函数 \(\mu(n)\) 见上 积性函数
欧拉函数 \(\varphi(n)\) 见上 积性函数 \(\varphi=\mu*id\)
约数个数函数 \(d(n)\) 或 \(\sigma_0(n)\) n的约数个数 积性函数 \(d=1*1\)
约数和函数 \(\sigma(n)\) n的约数和 积性函数 \(σ=id*1\)
除数函数 \(\sigma^k(n)\) n的约数k次方和 积性函数 \(σ^k=id^k*1\)

注:\(\varepsilon\) 念做 /'epsɪlɒn/,\(\sigma\) 念做 /'sɪɡmə/


二.定理

费马小定理&欧拉定理

  • 若 \(p\) 为质数且 \(a\not\equiv 0\pmod p\),则 \(a^{p-1}\equiv 1\pmod p\).

  • 若 \(\gcd(a,m)=1\),则 \(a^{\varphi(m)}\equiv 1\pmod m\).

\(\varphi\) 相关

  • 若 \(p\) 为质数,则 \(\varphi(p)=p-1\).

  • 若 \(p\) 为质数且 \(k\ge1\),则 \(\varphi(p^k)=p^k-p^{k-1}\).

  • 若 \(\gcd(n,m)=1\),则 \(\varphi(nm)=\varphi(n)\varphi(m)\).

  • 设 \(n=\prod\limits_{i=1}^{m}p_i^{k_i}\),则 \(\varphi(n)=n\times\prod\limits_{i=1}^{m}\frac{p_i-1}{p_i}\).

\(\mu\) 相关

  • \(\sum\limits_{d|n}\mu(d)=[n=1]\),同理 \([gcd(i,j)=1]=\sum\limits_{d|gcd(i,j)}\mu(d)\).

三.算法

1.欧几里得相关

求 \(\gcd\)

\[\gcd(a,b)=\begin{cases}a & b=0 \\ \gcd(b,a\bmod b) & b\not=0\end{cases} \]

利用这个东西递归计算即可。

扩展欧几里得(exgcd)求解同余方程

  • 记 \(g=\gcd(a,b)\),求解下列方程:\(ax+by=g\)

设计函数 exgcd(ll a,ll b,ll &x,ll &y)

当 \(b=0\) 时,我们解此时的方程 \(a_0x+b_0y=g=a_0\),只需令 \(x=1,y=0\) 即可。

若已经知道了 \(bx+(a\bmod b)y=g\) 的一组解 \(x_0,y_0\),如何借出方程 \(ax+by=g\) 的一组解?

\[\begin{aligned}bx_0+(a\bmod b)y_0&=bx_0+(a-\lfloor \frac{a}{b} \rfloor \cdot b)y_0 \\&=bx_0+ay_0- \lfloor \frac{a}{b} \rfloor \cdot by_0 \\&=a(y_0)+b(x_0-\lfloor \frac{a}{b} \rfloor \cdot y_0)\end{aligned}\]

于是我们就得到了一组解 \(x=y_0,y=x_0-\lfloor \frac{a}{b} \rfloor \cdot y_0\),不停地向上回溯即可解出原方程的解。

代码:

ll exgcd(ll a,ll b,ll &x,ll &y){
	if(!b){ x=1,y=0;return a; }
	ll d=exgcd(b,a%b,x,y);
	ll z=x; x=y; y=z-y*(a/b);//妈妈生的!!a/b要带括号!!! 
	return d;
}
  • 方程 \(ax+by=c\) 当且仅当 \(\gcd(a,b)\,|\,c\) 时有解。

  • 解同余方程 \(ax\equiv b\pmod m\) 时,只需解出 \(ax-my=b\) 的一组解即可。当且仅当 \(\gcd(a,m)\,|\,b\) 时有解。

//解同余方程 ax≡b(mod m)
ll TYFC(ll a,ll b,ll m){
	ll x,y,mm; 
	ll G=exgcd(a,m,x,y);
	if(b%G) return -1;
	x*=b/G;mm=m/G;
	return (x%mm+mm)%mm;
}

类欧几里得算法

单独写一篇博客了,在这里

2.素数相关

(一)筛法

①埃氏筛

\(\color{red}\text{咕咕咕咕咕}\)

②线性筛

\(\color{red}\text{咕咕咕咕咕}\)


???.推式子技巧

1. 总结性式子

(一)

\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=1] = \sum\limits_{i=1}^{n} \Big(2\cdot \sum\limits_{j=1}^{i}[\gcd(i,j)=1]\Big) -1 =\sum\limits_{i=1}^{n}\Big( 2\varphi(i) \Big)-1 \]

\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\gcd(i,j) =\sum\limits_{d=1}^{n}\Big(d\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{d}\rfloor}[\gcd(i,j)=1]\Big) =\sum\limits_{d=1}^{n}\Bigg(d\cdot\Big(\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}( 2\varphi{\scriptstyle(i)} )-1\Big)\Bigg) \]

详细解释在数论习题这篇博客中P2568 GCD这个题里提到。

(二)

\(\color{red}\text{上述两个式子,把 } j \text{ 的上界换成 }m\)

\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=1] =\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{d|\gcd(i,j)}\mu(d) =\sum\limits_{d=1}^{\min(n,m)} \Big(\mu(d) \cdot (\sum\limits_{i=1}^{n}[d|i]) \cdot (\sum\limits_{j=1}^{m} [d|j])\Big) =\sum\limits_{d=1}^{\min(n,m)} \Big(\mu(d) \lfloor\frac{n}{d}\rfloor \lfloor\frac{m}{d}\rfloor\Big) \]

借助了莫反,详细解释在数论习题这篇博客中P2522 [HAOI2011] Problem b这个题里提到。


\[\begin{aligned} \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j) &=\sum\limits_{d=1}^{\min(n,m)}d\cdot\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{i=1}^{\lfloor\frac{m}{d}\rfloor}[\gcd(i,j)=1] \\&=\sum\limits_{d=1}^{\min(n,m)} \Bigg( d\cdot \sum\limits_{k=1}^{\min(\lfloor\frac{n}{d}\rfloor,\lfloor\frac{m}{d}\rfloor)} \Big(\mu(k) \lfloor\frac{\lfloor\frac{n}{d}\rfloor}{k}\rfloor \lfloor\frac{\lfloor\frac{m}{d}\rfloor}{k}\rfloor \Big) \Bigg) \\&=\sum\limits_{d=1}^{\min(n,m)} \Bigg( d\cdot \sum\limits_{k=1}^{\min(\lfloor\frac{n}{d}\rfloor,\lfloor\frac{m}{d}\rfloor)} \Big(\mu(k) \lfloor\frac{n}{dk}\rfloor \lfloor\frac{m}{dk}\rfloor \Big) \Bigg) \end{aligned}\]

到这里,这个式子已经可以两次数论分块做出来了,但还有优化空间:

注意到:\(dk\le\min(n,m)\),而 \(\lfloor\frac{n}{dk}\rfloor \lfloor\frac{m}{dk}\rfloor\) 同时和 \(d\,,\,k\) 相关,也只和 \(dk\) 相关,于是可以考虑枚举 \(T=dk\):

\[\text{原式}=\sum\limits_{T=1}^{\min(n,m)}\lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor\sum\limits_{k|T}\mu(k)\frac{T}{k} \]

发现 \(\sum\limits_{k|T}\mu(k)\frac{T}{k}\) 就是 \(\mu * id=\varphi\),所以:

\[\text{原式}=\sum\limits_{T=1}^{\min(n,m)}\lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor \varphi(T) \]

一次数论分块即可。

2. 其他小技巧

  1. \(\sum\limits_{d|n}\mu(d)=[n=1]\),同理 \([gcd(i,j)=1]=\sum\limits_{d|gcd(i,j)}\mu(d)\).

  2. \(\sum\limits_{i=1}^{n} f(i)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{f(i)}1 =\sum\limits_{j=1}^{f(n)}\sum\limits_{i=1}^{n}[j\le f(i)]\),来源于P5170 【模板】类欧几里得算法

  3. \(nm=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=1]\min(\lfloor\frac{n}{i}\rfloor,\lfloor\frac{m}{i}\rfloor)\),无意间发现的,不知道有什么用。

  4. \(d(nm)=\sum\limits_{i|n}\sum\limits_{j|m}[\gcd(i,j)=1]\)

标签:总结,lfloor,frac,gcd,limits,数论,sum,rfloor
From: https://www.cnblogs.com/baoyangawa/p/17991616

相关文章

  • 数论习题
    -P2568GCD给定\(n\),求:\[\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=p]\]其中\(\mathbb{P}\)为质数集。推式子:\[\begin{aligned}\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[......
  • 8阶段2总结
    基本上完成了阶段2的任务,概率论初步完成总结:第一章:有无先后顺序无关紧要,分数约掉了,可以用除法和乘法两种思路计算概率问题贝叶斯公式,分母,全概率公式,不同路径获得最终结果,不可能事件概率不一定为0,想想概率密度函数第二章:连续型随机变量不要纠结等号,离散型保证右连续常见随......
  • 6阶段2总结
    名义上学完了数据结构各大排序算法不稳定的有:希尔、选择、快速、堆空间复杂度不为1的有:归并排序(n),快速排序logn(来自于递归工作栈)会判断快速排序位于第几趟(8题)构建大根堆是从后往前的,从n/2开始知道堆更新时候的对比次数,特别是知道什么时候兄弟节点要对比大小,什么时候不需要,可......
  • 可观测性之讲解用户行为分析的推荐书单和总结
    技术文延迟了本来计划参加活动的还有一篇,应该是一篇技术翻译文,但是那篇文章太难了,看我过我以往文章的同学,应该能理解,我的文章很少有3000字数以下的,而且如果不是来自谷歌(主要因为是内容都反复被验证过,其次公开资料也不存在内容侵权),就一定会是我自己的一些想法或者吐槽,而且大多都不仅......
  • 期权一张纸-不争连纸都没有-立足当下-观测未来-33岁前端程序员年终总结
    文章基本按照时间顺序,约5千字,内容讲的是:一场意外被辞,一场说走就走的旅游,一份5年亲密陪伴,下水捞过鱼,吃了“金蝉子”,野外路过营,举办了几次技术直播,我会简单陈述一下2022,希望明年总结能有一些精彩。因为是参赛文章,所以希望您能点赞、评论、转发或者评论666离职背景程序员被忽悠,期权大......
  • C语言近段时间的总结
    一、电脑我们一开始买回来的电脑分成   硬件和操作系统   在二者中间有一层叫做  驱动层   。关于驱动层,目前我是这么理解的,它相当于是一座桥梁,是用来连接起虚拟的操作和现实的机器,因此可以通过现实当中的动作来使计算机完成一定的操作,也就是作为一个翻译来帮助......
  • 数论习题
    -P2568GCD给定\(n\),求:\[\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=p]\]其中\(\mathbb{P}\)为质数集。推式子:\[\begin{aligned}\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[......
  • 基础数论大杂烩
    exgcd一,前置知识:裴蜀定理:若有\(a,b\)且\(a,b\)不全为0,则存在整数\(x,y\),使得\(ax+by=gcd(a,b)\)。二,算法过程:作用:给定\(a,b,c\),求解\(ax+by=c\)的整数解。我们先考虑求解\(ax+by=gcd(a,b)\)。由于\(gcd(a,b)=gcd(b,a\%b)\),所以有:\(\begin{cases}ax_1+by_1=gcd(a,b)\\bx_......
  • 《程序是怎么跑起来的》的第一次前两章总结
    读了《程序是怎样跑起来的》这本书的第一章之后,让我对CPU的理解更加深入。刚开始我只认为它是相当于计算机的大脑,原来它对于程序员来说不止如此,它还是CPU,寄存器,内存,内存地址,程序计数器,累计寄存器,标志寄存器和基址寄存器。它的内部是由寄存器,控制器,运算器和时钟四部分构成。平常......
  • 2023.12.9 总结
    T1题意:一枚棋子每一步只能走到与它原位置不同行与不同列的位置,现在将其放在一个\(R\)行\(C\)列的棋盘中,此棋子走\(N\)步,经过的点构成一个排列,问有多少种不同排列?\((R,C,N\le200)\)初步思路此题是\(DP\)。设\(f_{i,j,u}\)为走了\(i\)步,在\(j,u\)位置的走法,每一......