(蒟蒻的)初等数论笔记
欧几里得算法(辗转相除法)
简单来说就是: c是a和b的最大公因数,当且仅当c是b和a%b的最大公因数
证明 (注:下文的a/b是整型变量的除)
gcd(a,b) 设a>b a=b*k+c (c=a%b) 即a=b*k+a%b 对于u=gcd(a,b) u能整除a也能整除b (1) (u能整除a---->a=k1*u,u能整除b---->b=k2*u c=a%b=a-(a/b)*b )
a=b*k+c (c=a%b) (2) (将a=k1*u和b=k2*u代入c=a-(a/b)*b得 c=(k1-(k1/k2)*k2)*u 即c为u的倍数)
(1)+(2) u能整除cgcd(a,b)=gcd(b,a%b)....
拓展欧几里得
主要是求关于x和y的方程ax+by=gcd(a,b)的所有整数解
既然是拓展欧几里得,那肯定和欧几里得算法有关系 gcd(a,b)=gcd(b,a%b)拓展到方程里面有a*x1+b*y1=gcd(a,b)
b*x2+(a%b)*y2=gcd(b,a%b)方程右边相等,得a*x1+b*y1=b*x2+(a%b)*y2a%b可替换为a-(a/b)*b 得a*x1+b*y1=b*x2+(a-(a/b)*b)*y2
整理得a*x1+b*y1=a*y2+(x2-(a/b)*y2)*b因为等号两边的a和b的系数要相同我们得到两个等式x1=y2;
y1=x2-(a/b)*y2;按欧几里得算法对于gcd(a,b)一直化下去最终会得到b=0,此时gcd(a,b)=a
即对于此时的方程a*x+b*y=gcd(a,b)来说x=1,y=0
我们可以回溯得到最初的方程的x和y的值
需要注意
如果有解的话这样得到的解肯定是有无数多个的对于a*x+b*y=c来说
(1)同时把x+b/c y+a/c得到的x和y也是满足方程的(2)如果c % gcd(a,b) != 0,即c不是gcd(a,b)的整数倍,则无解(3)c % gcd(a,b) == 0 且 c / gcd(a,b) = t那么求出方程 a * x + b * y = gcd(a,b)的所有解x,y,将x,y乘上t,对应的x’,y’即是方程a * x + b * y = t * gcd(a,b)的解
欧拉定理与费马小定理
定义:对于两个互质的正整数a,n(n>2)有a^φ(n)≡1(mod n) 欧拉定理
定义:对于质数p,任意整数a,均满足:a^p≡a(mod p)费马小定理
定义:若正整数a,n互质,那么对于任意正整数b,有a^ b ≡ a^(b mod φ(n))(mod n) 欧拉定理的推论
欧拉函数 φ(n)
定义:在数论中φ(n)=在区间[1,n]中与n互质的数的个数(包括1)
φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1),p(2)…p(n)为x的所有质因数;x是正整数; φ(1)=1(唯一和1互质的数,且小于等于1)。注意:每种质因数只有一个。 例如: φ(10)=10×(1-1/2)×(1-1/5)=4; φ(30)=30×(1-1/2)×(1-1/3)×(1-1/5)=8; φ(49)=49×(1-1/7)=42;
欧拉函数的性质
(1)p^k型欧拉函数
φ(p^k)=p^k-p^(k-1)=(p-1)*p^(k-1)
证明:
(2)n*m型欧拉函数
若n和m互质则φ(n*m)=φ(n)*φ(m)
(3)欧拉函数的特殊性质
当n为奇数的时候φ(2*n)=φ(n)对于两个互质的正整数a,n(n>2)有a^φ(n)≡1(mod n) 此公式即欧拉定理当n=p且a与素数p互质(即:gcd(a,p)=1)则上式有: a^(p-1)≡1(mod n)此公式即 费马小定理
欧拉函数的延伸
等于或等于n的数中,与n互质的数的总和为:φ(x) * x / 2 (n>1)
完全余数集合
定义小于 n 且和 n 互质的数构成的集合为 Z(n) ,称呼这个集合为 n 的完全余数集合。 显然 |Z(n)| =φ(n)
同余定理
如果 a mod b = c 则有(a+kb) mod b =c(k为非0整数)
如果 a mod b = c 则有(ka) mod b =kc (k为正整数)
(a+b) mod c =((a mod c)+(b mod c )) mod c;
(ab) mod c=((a mod c)(b mod c)) mod c
求解同余方程组
求解同余方程组
|x≡ a1(modm1)
|x≡ a2(modm2)
|x≡ a3(modm3)
.....
x≡ ak(modm2k)
其中m1,m2,m3…mk为两两互质的整数
求x的最小非负整数解
定理
积性函数 (可乘函数)
莫比乌斯函数
上面两张图片来自博客https://blog.csdn.net/tomandjake_/article/details/81083051
未完…
(蒟蒻的)初等数论笔记相关推荐
- 蒟蒻信安笔记1:网络扫描与网络侦查
网络渗透测试实验一 1.搜索麻省理工学院网站含"network security" 的pdf文档 2.搜索照片中的位置信息 3.手机位置定位 4.Base64编码解码 5.地址信息 ...
- 一只蒟蒻的A*学习笔记
更多请见DUMBLOG 一只蒟蒻的A* 学习笔记 A* 是啥?? A* 用来干啥?? 首先,A-Star 算法只能用在数据规模很大的搜索题中,这时直接用 BFS 会超时,而利用 启发函数(估价函数) ...
- 蒟蒻的python 学习笔记 ——北京理工大学嵩天mooc(有时间就看就更新,尽量让笔记容易懂,蟹蟹各位大神不吝赐教)
蒟蒻的python 学习笔记 前言 课一:python语言程序设计 第一周:python 基本语法元素 1.1 程序设计基本方法 1.2 python 环境配置 1.3 实例1:温度转换 1.4 py ...
- python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记
About me 本蒟蒻是悉尼大学计算机科学大一的学生,这篇博客记录了学习INFO1110这门课的一些心得,希望能对大家有帮助. To start with 因为计算机只能识别机器语言,所以我们需要编 ...
- 蒟蒻的线段树入门模板笔记
线段树适合处理那些问题? 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构. 线段树可以在O(logN)的时间复杂度内实现单点修改.区间修改.区间查询(区间求和,求区间最大值,求区间最小值,求区 ...
- 本蒟蒻对于二分图一些定理的理解
本蒟蒻对于二分图一些定理的理解 先给出一些定理 (常识) 1.对于一个无向图 G,若 G 中的所有回路长度均为偶数,则G为一个二分图. 2.二分图的最小点覆盖 = 最大匹配数. 3.二分图的最大独立集 ...
- 【bzoj4916】神犇和蒟蒻 杜教筛
题目描述 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出 请你输出一个整数A=\sum_{ ...
- 蒟蒻浅谈树链剖分之一——两个dfs操作
树链剖分,顾名思义就是将树形的结构剖分成链,我们以此便于在链上操作 首先我们需要明白在树链剖分中的一些概念 重儿子:某节点所有儿子中子树最多的儿子 重链:有重儿子构成的链 dfs序:按重儿子优先遍历时 ...
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
[BZOJ4916]神犇和蒟蒻(杜教筛) https://www.cnblogs.com/cjyyb/p/8297338.html 杜教筛技巧
- USACO 简易题解(蒟蒻的题解)
蒟蒻难得可以去比赛,GDOI也快到了,还是认真刷题(不会告诉你之前都在颓废),KPM 神犇既然都推荐刷USACO, 辣就刷刷. 现在蒟蒻还没刷完,太蒟刷得太慢,so 写了的搞个简易题解(没代码,反正N ...
最新文章
- Effective.Java第23-33条(泛型相关)
- SpringBoot+Vue+OpenOffice实现文档管理(文档上传、下载、在线预览)
- VTK:图表之AdjacencyMatrixToEdgeTable
- 1059. Prime Factors (25)
- 虚拟存储器(虚拟内存Vitual Memory)
- React 篇 Search Bar and content Table
- mtk pwmlinux timer
- python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法
- Android系统(244)---Zygote进程的启动流程
- python中write什么意思_Python中操作文件之write()方法的使用教程
- 百度离线语音合成SDK使用
- 阿里云邮箱标准版集团版尊享版怎么选
- 线下娱乐“换血”,沉浸式体验会成为下一个10年的主题吗?
- 华为服务器休眠远程怎么唤醒,华为路由WS5200怎么设置远程唤醒功能
- 学习二叉树必须知道的基本性质
- ROC曲线和PR曲线,AP,mAP
- 优酷回应非会员收看3000秒广告;亚马逊推出Titan大语言模型;Android 14首个Beta版本释出 | 极客头条
- 斯蒂夫乔布斯传札记:第六波
- Python学习.第六天.字典
- 参照国家一级博物馆运行评估指标体系,博物馆综合业务服务平台就该如此建设
热门文章
- 全网最全最新安装nodes方式,楼主亲测好用
- 小米笔记本适合计算机专业,一天写完硕士毕业论文_论文一天写5000可能吗
- Linux:分享七款界面非常漂亮的Linux操作系统
- Postman发送请求报错【{ “timestamp“: “2022-09-30T07:12:17.782+00:00“, “status“: 400, “error“: “】
- 在线模拟c语言编程,c语言模拟编程学习软件v2019
- Thinkpad T460p 扩容重装学习----BIOS设置硬盘启动
- 东北大学2022年计算机考研复试在几月
- 【文文殿下】Win7打开无线热点
- 【Festo仿生】放大招丨你见过比他灵活的“机械手”吗?
- 数据治理全景图谱(PPT)