密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理
文章主要根据百度百科和维基百科相关相关知识点整理而成!
辗转相除法
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
另一种求两数的最大公约数的方法是更相减损法。
中文名
辗转相除法
外文名
Euclidean algorithm
别 称
欧几里德算法
用 途
求最大公约数
基本原理
编辑
两个数的最大公约数是指能同时整除它们的最大正整数。
设两数为a、b(a≥b),求a和b最大公约数 的步骤如下:
(1)用a除以b(a≥b),得 。
(2)若 ,则 ;
(3)若 ,则再用b除以 ,得 .
(4)若 ,则 ;若 ,则继续用 除以 ,......,如此下去,直到能整除为止。其最后一个余数为0的除数即为 的最大公约数。
证明
编辑
设两数为a、b(a>b),用 表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即 。辗转相除法即是要证明 。
第一步:令 ,则设
第二步:根据前提可知
第三步:根据第二步结果可知, 也是 的因数
第四步:可以断定 与 互质(这里用反证法进行证明:设 ,则 ,则 ,则a与b的一个公约数 ,故c非a与b的最大公约数,与前面结论矛盾,因此c也是b与r的最大公约数)从而可知 ,继而 。
证毕
注:以上步骤的操作是建立在刚开始时 的基础之上的,即m与n亦互质。 [1]
算法描述
编辑
用辗转相除法确定两个正整数 a 和 b(a≥b) 的最大公因数 当 时, ;否则 递归或循环运算得出结果。
算法流程图如下:
伪代码描述如下:
1 2 3 4 5 6 7 |
|
示例
编辑
例1
123456 和 7890 的最大公因数是 6,这可由下列步骤(其中,“a mod b”是指取 a ÷ b 的余数)看出:
a |
b |
a mod b |
123456 |
7890 |
5106 |
7890 |
5106 |
2784 |
5106 |
2784 |
2322 |
2784 |
2322 |
462 |
2322 |
462 |
12 |
462 |
12 |
6 |
12 |
6 |
0 |
例2
代码实现
c语言
1 2 3 4 5 6 7 |
|
Java 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
费马小定理
费马小定理是数论中的一个定理:假如是一个整数,是一个质数,那么是p的倍数,可以表示为,如果a不是p的倍数,这个定理也可以写成,
欧拉定理
费马小定理是欧拉定理的一个特殊情况:如果n和a的最大公因数是1,那么
这里φ(n)是欧拉函数。欧拉函数的值是所有小于或等于n的正整数中与n互质的数的个数。假如n是一个素数(质数),则φ(n) = n-1,即费马小定理。
任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)
计算这个值的方法就叫做欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。
φ(n) 的计算方法并不复杂,但是为了得到最后那个公式,需要一步步讨论。
第一种情况
如果n=1,则 φ(1) = 1 。因为1与任何数(包括自身)都构成互质关系。
第二种情况
如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。
第三种情况
如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则
比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。
这是因为只有当一个数不包含质数p,才可能与n互质。而包含质数p的数一共有p^(k-1)个,即1×p、2×p、3×p、...、p^(k-1)×p,把它们去除,剩下的就是与n互质的数。
上面的式子还可以写成下面的形式:
可以看出,上面的第二种情况是 k=1 时的特例。
第四种情况
如果n可以分解成两个互质的整数之积,
n = p1 × p2
则
φ(n) = φ(p1p2) = φ(p1)φ(p2)
即积的欧拉函数等于各个因子的欧拉函数之积。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。
这一条的证明要用到"中国剩余定理",这里就不展开了,只简单说一下思路:如果a与p1互质(a<p1),b与p2互质(b<p2),c与p1p2互质(c<p1p2),则c与数对 (a,b) 是一一对应关系。由于a的值有φ(p1)种可能,b的值有φ(p2)种可能,则数对 (a,b) 有φ(p1)φ(p2)种可能,而c的值有φ(p1p2)种可能,所以φ(p1p2)就等于φ(p1)φ(p2)。
第五种情况
因为任意一个大于1的正整数,都可以写成一系列质数的积。
根据第4条的结论,得到
再根据第3条的结论,得到
也就等于
这就是欧拉函数的通用计算公式。比如,1323的欧拉函数,计算过程如下:
裴蜀定理
在数论中,裴蜀等式(英语:Bézout's identity)或裴蜀定理(Bézout's lemma)是一个关于最大公约数(或最大公约式)的定理。裴蜀定理得名于法国数学家艾蒂安·裴蜀,说明了对任何整数、和,关于未知数和的线性丢番图方程(称为裴蜀等式):
有整数解时当且仅当是及的最大公约数的倍数。裴蜀等式有解时必然有无穷多个整数解,每组解、都称为裴蜀数,可用扩展欧几里得算法求得。
例如,12和42的最大公约数是6,则方程有解。事实上有及。
特别来说,方程 有整数解当且仅当整数和互素。
裴蜀等式也可以用来给最大公约数定义:其实就是最小的可以写成形式的正整数。这个定义的本质是整环中“理想”的概念。因此对于多项式整环也有相应的裴蜀定理。
中国剩余定理
中国剩余定理,又称中国余数定理,是数论中的一个关于一元线性同余方程组的定理,说明了一元线性同余方程组有解的准则以及求解方法。也称为孙子定理,古有“韩信点兵”、“孙子定理”、“求一术”(宋沈括)、“鬼谷算”(宋周密)、“隔墙算”(宋 周密)、“剪管术”(宋杨辉)、“秦王暗点兵”、“物不知数”之名。
用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组:
有解的判定条件,并用构造法给出了在有解情况下解的具体形式。
中国剩余定理说明:假设整数m1, m2, ... , mn其中任两数互质,则对任意的整数:a1, a2, ... , an,方程组有解,并且通解可以用如下方式构造得到:
- 设是整数m1, m2, ... , mn的乘积,并设
- ,即是除了mi以外的n − 1个整数的乘积。
- 设为模的数论倒数:
- 方程组{\displaystyle (S)}的通解形式为: 在模的意义下,方程组只有一个解:
例子:
-
密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理相关推荐
- 中国剩余定理与扩展中国剩余定理
中国剩余定理又名孙子定理 用来求解同余线性方程组 其中m1,m2,m3-两两互质,求x的最小整数解: 设M为m1,m2,m3-的公倍数. 根据上面的推导,为什么x的通解形式是累加呢? 根据上面推导,推 ...
- 欧拉定理 费马小定理
前言 学基础数论的时候看过证明,然而很快就忘了,最近在学习高深一点的数论,于是再复习一下欧拉定理和费马小定理. 欧拉定理 内容 若正整数 \(a,n\) 互质,则 \(a^{\varphi(n)}\e ...
- 初等数论--同余--欧拉函数、欧拉定理、费马小定理
初等数论--同余--欧拉函数.欧拉定理.费马小定理 概念 同余类,既约同余类 欧拉函数 完全剩余系,既约剩余系 关于完全剩余系.既约剩余系一些比较简单的定理 欧拉定理.费马小定理 博主是初学初等数论( ...
- 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)
一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...
- 「欧拉定理」学习笔记(费马小定理)
欧拉定理:对于互质的两个正整数$a, n$,满足$a^{φ(n)} ≡ 1\ (mod\ n)$ 证明: 设集合$S$包含所有$n$以内与$n$互质的数,共有$φ(n)$个:$$S = \{ x_1 ...
- 关于素数常用结论--威尔逊定理、欧拉定理、费马小定理、米勒罗宾算法
再需要判定的数比较大时,用枚举法肯定不行的,但目前数学界也没有任何一种又快又准确的判定素数的方法,并且也证明了素数不存在任何一种通项表达式.但作为初等数论中最大的一部分内容,数学家们对素数性质进行了大 ...
- 数论杂谈(欧拉定理与费马小定理结论与应用)
文章目录 欧拉定理: 欧拉定理性质: 扩展欧拉定理: 费马小定理: 指数循环节 费马大定理 逆元: 例题 原根 定义: 原根存在条件 例题 快速幂 代码 矩阵快速幂 原理: 代码: 欧拉定理: aφ( ...
- 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明
一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...
- 欧拉定理及费马小定理
欧拉定理 1.定义:若a于n互质,则aφ(n)≡1(modn)a^{\varphi(n)}\equiv1 (mod\quad n)aφ(n)≡1(modn),这里的φ()\varphi()φ()为欧拉 ...
最新文章
- 如何学习iphone游戏开发
- php网站开发案例教程ppt,php网站开发案例教程》课件.ppt
- Windows下配置环境变量和需不需要重启?
- 优秀!22岁读博士,26岁当教授,因为太优秀反而没人敢追?
- IOS之学习笔记六(可变形参)
- 信息学奥赛C++语言:求各位数和2
- 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...
- 排序 -> 选择排序
- 三菱fx3u通讯手册_三菱FX3U与变频器通讯程序如何编写
- 计算机网络误区——VLAN中Access和Trunk原理详解
- 广数系统加工中心编程_数控铣和加工中心编程
- win10-11电脑配置3080Ti 配置驱动NVIDIA CUDA驱动11.4和10.2版本-安装步骤和下载vs2019+双NVIDIA配置教程
- c语言输入r1 r2垫片的面积,C语言上机实验答案Word版
- 【问链-区块链基础知识系列】 第十课 首席架构师谈区块链技术演进
- 超详细Klipper 上位机与下位机配置
- LeetCode||整数转罗马数字(Java)
- pdf文档翻译软件有哪些?Pdf文档翻译软件分享。
- 针对elementUI 中InfiniteScroll按需引入的一点注意事项
- 【区块链 | 审计】关于审计技术和工具 101事
- 学习Altium Designer软件总结
热门文章
- 攻防世界 web新手练习区WP(超新新手!)
- (转载)Java中关于内存泄漏出现的原因以及如何避免内存泄漏
- 乌班图Ubuntu图形化界面设置ip地址固定
- 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
- 卫报:为何亚马逊平板能威胁苹果而谷歌不能
- 商品关联度分析(关联三度,附Python实战) 我的钱就是这么没的,不只有皮尔森系数的相关分析
- 活用Excel高级筛选解决实际问题
- 宝塔面板linux离线安装,宝塔linux面板搭建aria2离线下载服务器教程
- stable diffusion打造自己专属的LORA模型
- 打造沉浸空间,vivo i音乐10.0版本回归音乐本质