数论知识点整理
2019-05-03 17:03
78 查看
定义:
两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对于模m同余或a同余于b模m
记作 a≡b (mod m)
读作 a同余于b模m,或读作a与b对模m同余。
例如 26≡2 (mod 12)
主要定理:
A*B % C = (A%C * B%C)%C
(A+B)%C = (A%C + B%C)%C
主要用处:
第一个大数求余。
在第二个式子中,就可以用到。
例如:
520%a = 500%a + 20%a +0%a;
我们就可以求出大数求余的结果了。
第二个A的B次幂,求模C的结果。
在第三个式子,就可以用到。
例如:
快速幂求此题。其中就是有一行代码 sum = (A%mod * sum%mod)%mod;
一是为了防止数据过大,爆了。超出long long 或者 long 或者 int 的边界而出错。
二是为了最后可以直接输出结果。
主要性质:
1 反身性 a≡a (mod m)
2 对称性 若a≡b(mod m),则b≡a (mod m)
3 传递性 若a≡b (mod m),b≡c (mod m),则a≡c (mod m)
4 同余式相加 若a≡b (mod m),c≡d(mod m),则a c≡b d (mod m)
5 同余式相乘 若a≡b (mod m),c≡d(mod m),则ac≡bd (mod m)
主要相关定理:
1 欧拉定理
2 费马小定理
3 中国剩余定理
4 幂运算
5 除法
辗转相除法
int gcd(int a,int b) { if(b==0) { return a; } else return gcd(b,a%b); }
扩展欧几里德算法是用来在已知a, b求解一组{x,y}
使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根
4000
据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。
int exgcd(int a,int b,int & x,int &y) { if(b==0) { x=1; y=0; return a; } int ans; ans=exgcd(b,a%b,x,y); int r; r=x; x=y; y=r-(a/b)*y; return ans; }
相关文章推荐
- vue 相关技术文章地址和知识点整理
- 简练软考知识点整理-项目人力资源管理简介
- 整理的知识点
- 整理其他前端常见面试知识点
- JAVA中文件上传下载知识点整理:
- 软考嵌入式系统工程师知识点整理(嵌入式操作系统)
- C++知识点整理
- 关于mybatis的知识点整理
- Iphone界面设计中的小知识点整理
- 最近用到mysql和mybatis结合常用的知识点坐下整理
- git知识点整理
- Redis使用问题及知识点记录 - 待整理
- UML知识点整理
- asp.net mvc 3.0 知识点整理 ----- (4).asp.net mvc 3 和asp.net mvc 4 对比
- JavaScript易错知识点整理
- 软件测试知识点整理
- JavaScript易错知识点整理
- oracle数据库知识点整理
- C语言基础——知识点笔记整理1