Segment 2:Introduction Number Theory——Fermat and Euler【费马定理和欧拉定理】
Segment 2:Introduction Number Theory——Fermat and Euler【费马定理和欧拉定理】
这是整个数论简介的内容,下面是这个的主目录,其链接为:https://blog.csdn.net/qq_43479839/article/details/119079620
Segment 2目录@xyi
- Segment 2:Introduction Number Theory——Fermat and Euler【费马定理和欧拉定理】
- 2.1 Fermat’s theorem【费马定理】
- 1、Fermat’s thoerem的定义
- 2、费马定义的一个应用
- 3、the structure of (Zp)*——【(Zp)*的结构】
- 4、Order【定义g的生成群的大小——即是g在(Zp)*里的阶】
- 5、 the theorem of lagrange【拉格朗日定理】(这里只是说的拉格朗日定理的一个特例)
- 6、Euler’s generalization of Fermat【欧拉定理:一个费马定理的直接推广或一般化】欧拉定理是RSA密码系统的基础;
2.1 Fermat’s theorem【费马定理】
1、Fermat’s thoerem的定义
Zp不仅表示的是{0,1,2,……p-1},也是模p运算;
x∈(Zp)*表示的是:在Zp中的所有可逆元素的集合;
(如上图)
1》 Fermat’s theorem【费马定理】描述:若p是素数(或叫质数),x是正整数且不能被p整除,则x^p-1≡1 (mod p).或是
2》 并且上图中的Example满足费马定理
3》 我们看在费马小定理中的一个简单应用,假设给Z_P*里的一个元素x,我想说的是这里的p必须是质数,由费马定义可知上述1中的式子;这就给我们另一个计算x模一个质数的逆的算法;计算X^(p-2);就会得到x的逆;实际上这是一个计算模一个质数的逆的好的方法,但是与欧几里德算法相比有俩个不足。首先:他只能工作在质数模(即mod p)上,而Euclid算法还可以工作在合数模上;第二实际这个算法效率更低,这个算法会花掉大约logP的三次方;但是欧几里得算法中计算逆只会花掉logp的平方时间内。
2、费马定义的一个应用
(如上图),假设我们想生成一个随机的大质数,比如说:我们的质数需要有1024位长,我们要找的质数是2的1024次方的量级,这是一个非常简单的概率问题。
1》 step1:我们可以选择一个随机整数p,方范围是在21024到21025-1的范围。
2》 然后测试,我们选取的这个整数p是否满足费马定理,换句话说,我们可以用2为底数进行检测;如果这个等式不成立;那么我们知道我们选择的这个数p一定不是一个质数,不成立返回step 1即可;知道选取的p满足费马定理这个式子;实际上,虽然很难证明,但是如果一个随机数通过这里的检测,那么它极有可能是质数,特别地,这个p不是质数的概率非常小;小于2(-60);随着数p的变大,当它通过这里的测试但不是质数的概率会迅速向0衰减;
【因此上面的算法,不能保证输出的p一定是一个质数,但是我们知道它非常可能是一个质数。尽管在实际中,我们并不用这个方法来生成质数,但是大家可能想知道这个迭代需要重复多少次,有一个经典的结果叫做质数定理,这个定理是说,经过几百次迭代我们就能以很高的概率找到质数,】
3、the structure of (Zp)*——【(Zp)*的结构】
(如上图)
1> 用现代的语言【欧拉定理】来讲,(Zp)*是一个循环群。(Zp)*是一个循环群是什么意思?这意味着(Zp)里有某个元素g,如果我们选取g计算g的一组幂,g2,g3,g4.。。因为根据费马定理,g^(p-1)=1 in Zp…我们就得到了一个循环,如果我们增加g的指数,我们可以就停在g(p-2);
2> Euler【欧拉】证明了事实上,有这么一个元素g,如果你看它的所有幂,可以扩展成整个群(Zp),g的幂给出了(Zp)*里的所有元素,这样的元素g叫做生成元。那么g就叫做(Zp)*的一个生成元;
Example:p=7,看3的所有幂,如下图,由36=1即没必要写了;所以说3是的一个生成元【generator】。
但是不是所有Zp{0}每个元素都是生成元。例如:如果我们看2的所有幂,因为当2^3=8 mod 7 =1[也就循环回来了] ,并不会生成整个群因此我们说2不是的(Z7)*生成元。
4、Order【定义g的生成群的大小——即是g在(Zp)*里的阶】
1、一个很常用的是:给定(Zp)*里的一个元素g,如果我们看g的全体幂组成的集合,得到的集合就叫做g的生成群【the group generated by G】;它们给了我们一个乘法群【multiplicative group】,用表示g的生成群;
2、然后我们把g的生成群的大小叫做g在(Zp)*里的阶(order);换一个表示方法,如下:
对有上图的一些记号,如下图可能会有比较好的理解:
例如:看在各个元素的阶,如下图:
5、 the theorem of lagrange【拉格朗日定理】(这里只是说的拉格朗日定理的一个特例)
定理说:有限子群的阶必然必然整除有限群的阶;拉格朗日定理意味着:如果你看g模p的这个阶始终整除p-1;即你的阶始终是p-1的因子;
举例如下:
6、Euler’s generalization of Fermat【欧拉定理:一个费马定理的直接推广或一般化】欧拉定理是RSA密码系统的基础;
1、 定义:欧拉定义了下面这个函数,那么给定了一个整数N,欧拉定义了函数Ψ,有时也叫做欧拉的Ψ函数,例如:Ψ(N)表示了(ZN)*的大小;其中(ZN)*表示的是N中的可逆元素。当N为素数p时,有Ψ§=p-1;【不包含0元素】
这里要说的是:之后再RSA系统中我们要用到的,如果N正好是两质数p和q的乘积?为什么下面这个会成立?因为N是ZN的大小,现在我们要移除所有与N不是互质的元素,一个元素如何才能不与N互质呢?它要不被p整除,也要不被q整除,那么在0到N-1之间,有多少元素能被p整除?一定有q个;又有多少元素能被q整除?一定有p个;那么我们用N-p-q;但是大家注意,在这其中减去了0俩次;因为0同时被p和q整除;故N-p-q+1;
Euler Thm【欧拉定理】:如果你给我(ZN)*中的任意元素X,事实上,X的Ψ(N)次方在Z_N中一定等于1;这是一个费马定理的一个推广
对于质数而言,我们知道Ψ§=p-1;换句话说,如果N是质数,我们再这里这下p-1;那么我们就得到了费马定理;但是这个欧拉定理最棒的地方在于:他也适用在于合数,不仅仅是质数;
Segment 2:Introduction Number Theory——Fermat and Euler【费马定理和欧拉定理】相关推荐
- Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)
题目: Mr. Panda is one of the top specialists on number theory all over the world. Now Mr. Panda is in ...
- NUMTRYE - Number Theory (Easy)
NUMTRYE - Number Theory (Easy) Hard 版本就是用 pollard_rho 分解质因子. f(n)=∏(pi2ei+1+1)f(n) = \prod(p_i ^{2e_ ...
- Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图
传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数的因子个数不超过777个,选出最少的数使其乘积为平方数. n≤1e5n\le 1e5n≤1e5 思路: 由于因子不超过777个,所以由约 ...
- 2016级算法第二次上机-F.ModricWang's Number Theory II
891 ModricWang's Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数. 考虑使得一个数d整除数组中 ...
- Elliptic Curves Number Theory And Cryptography——pairing learning
<Elliptic Curves Number Theory And Cryptography 2n>中Example 11.5, magma脚本: clear; q:=7; Fq:=GF ...
- concrete maths ch4 number theory
ch4 number theory 数论研究正数的性质 1.整除 gcd lcm 扩展欧几里得. 整除求和\(\sum_{n|m}\)的几个公式.ch2的知识会很有用. 2.质数 Fundamenta ...
- 图论 + 数论 ---- CF1325E E. Ehab‘s REAL Number Theory Problem (约数个数 + 枚举 + bfs找最小环)[从图结构优化搜索]
题目链接 题目大意: 给你nnn个数,每个数保证约数个数不超过777个.问你从中选出若 干个数的乘积是完全平方数,最少要选择多少个数?,不存在输出-1. 题目思路: 1.每个数约数不超过7个→\rig ...
- FZU 2297 Number theory【线段树/单点更新/思维】
Given a integers x = 1, you have to apply Q (Q ≤ 100000) operations: Multiply, Divide. Input First l ...
- BZOJ 1114 Number theory(莫比乌斯反演+预处理)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...
最新文章
- DOS命令行操作MySQL常用命令
- centos 7 jenkins githup测试
- matlab 提取数列里非零_什么!科研交流免费教Matlab?
- java 属性不序列化_怎样对带有不可序列化属性的Java对象进行序列化
- 别说了,叫爸爸吧! | 今日最佳
- 前端学习(1188):事件绑定
- wordpress关闭更新提示
- html页面顶部提示在更高浏览器下面提示语
- 6远程桌面连接不上_windows server2008 远程桌面 创建新用户和多用户登录
- python结构体_Python对象初探
- 【OpenGL开发】glut和freeglut下载及配置
- 卡尔曼滤波和互补滤波的区别
- synchronized原理
- 什么是数字化转型? 怎样算是转型?
- 如何做好一个IT项目经理? (一)
- C语言rot90的头文件,python – np.rot90()破坏了opencv图像
- 【宝塔面板】紧急安全更新通知
- 吉首大学第九届"新星杯"大学生程序设计大赛 J.小阳排队
- 生物化学《第二章糖类》
- Ubuntu14.04 桌面特效