费马小定理(介绍+证明+逆元代码实现)

费马小定理详解 若存在2个整数b·a[i]和b·a[j]同余即b·a[i]≡b·a[j](mod m)…如果a[1],a[2],a[3],a[4],…a[m]是模m的一个完全剩余系,则b·a[1],b·a[2],b·a[3],b·a[4],…在普通的四则运算中,只有加减乘三种运算可以进行分别取余运算,因为这三种运算都是从低位到高位的运算,而对于除法是从高位到低位的运算,显然不能直接进行取余,这时候,就要用到逆元有关的运算。所以b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]构成模m的一个完全剩余系。 阅读详情
AI摘要

本文深入解析费马小定理,探讨质数、模运算及数论中的逆元概念。通过历史回顾与证明,揭示定理本质,并提供逆元求解的代码实现,适用于快速计算。

目录

一、背景知识回顾

1、什么是质数?

2、≡的意思?

3、mod的意思?

4、数论中的倒数(也成为逆元)

二、什么是费马小定理?

三、费马小定理历史

四、费马小定理证明

五、应用

六、求逆元的代码实现


一、背景知识回顾

1、什么是质数?

质数(prime number)又称素数,有无限个。

质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

2、≡的意思?

≡   的意思是左右两边的数对p求模结果相同。

3、mod的意思?

指求模运算。

4、数论中的倒数(也成为逆元)

我们知道:如果a*x = 1,那么x是a的倒数,x = 1/a,但是a如果不是1,那么x就是小数。

那么在数论中,大部分情况下都有求余,所以现在问题变了

现在有:a*x  ≡ 1 (mod p)

那么x一定等于1/a吗?

不一定

那么在这个时候,我们就把x看成a的倒数,只不过加了一个求余条件,所以x叫做a关于p的逆元。

二、什么是费马小定理?

       费马小定理是数论中的一个定理。其内容为假如a是一个整数,p是一个质数的话,那么:

  ap = a(mod p)

  假如a不是p的倍数的话,那么这个定理也可以写成:

  ap − 1 = 1(mod p)

  这个书写方式更加常用些。

三、费马小定理历史

  皮埃尔·德·费马于1636年发现了这个定理,在一封1640年10月18日的信中他第一次使用了上面的书写方式。在他的信中费马还提出a是一个质数的要求。这个要求实际上不存在。

四、费马小定理证明

 任意取一个质数,比如13。考虑从1到12的一系列整数1,2,3,4,5,6,7,8,9,10,11,12,给这些数都乘上一个与13互质的数,比如3,得到3,6,9,12,15,18,21,24,27,30,33,36。对于模13来说,这些数同余于3,6,9,12,2,5,8,11,1,4,7,10。这些余数实际上就是原来的1,2,3,4,5,6,7,8,9,10,11,12,只是顺序不同而已。

  把1,2,3,„,12统统乘起来,乘积就是12的阶乘12!。把3,6,9,„,36也统统乘起来,并且提出公因子3,乘积就是312×12!。对于模13来说,这两个乘积都同余于1,2,3,„,12系列,尽管顺序不是一一对应,即312×12!≡12!mod 13。两边同时除以12!得312≡1 mod 13。如果用p代替13,用x代替3,就得到费马小定理。

证明来自:《数论妙趣——数学女王的盛情款待》第六章 开门咒

五、应用

费马小定理可以快速求得x关于p的逆元(参看上面逆元的概念)。

前提当然得是x与p互质才有逆元。

即:x*x^p-2  ≡ 1 (mod p)

所以x^p-2就是x关于p的逆元。

六、求逆元的代码实现

这里使用了快速幂算法来求x^p-2。

#include<iostream>
#define ll long long
using namespace std;
ll quickpow(ll a, ll b, ll p){
    ll temp = 1;
    while(b){
        if(b & 1) temp = (temp * a) % p;
        a = (a * a) % p;
        b >>= 1;
    }
    return temp;
}
int main()
{
	ll a, p;
	cin>>a>>p;
	cout<<quickpow(a, p-2, p)<<endl;
	return 0;
}

参考博客:

1、逆元的概念与逆元的计算:https://www.cnblogs.com/linyujun/p/5194184.html

2、费马小定理证明:https://www.cnblogs.com/flipped/p/5218037.html

3、快速幂算法:https://blog.youkuaiyun.com/weixin_42151279/article/details/81057137

【费马小定理】【欧拉定理】【扩展欧拉定理】及其证明 注:此文所提到的“整数”“素数”等均指正数对于一个素数ppp,任意整数aaa,若gcd⁡(a,p)=1\gcd(a,p)=1gcd(a,p)=1(即aaa,ppp互质),则: ap−1≡1(modp) a^{p-1}\equiv1\pmod{p} ap−1≡1(modp)先找出所有小于等于ppp的与ppp互质的正整数, 为序列A={1,2,3,…,p−1}A=\{1,2,3,\dots,p-1\}A={1,2,3,…,p−1},则:gcd⁡(Ai,p)=1\gcd(A_i,p 阅读详情

相关推荐

费马小定理证明

定理: ∀(a,p)=1,p 为素数,则 ap−1≡1(modp) {\forall}(a,p) = 1, p\,为素数,则\,a^{p-1}\equiv1(mod p) ∀(a,p)=1,p为素数,则ap−1≡1(modp) 证明1: ==完全剩余系:==从模n的每个剩余类中各取一个数,得到一个由n个数组成的集合,叫做模n的一个完全剩余系。完全剩余系常用于数论中存在性证明。 举例:一个数除以4的余数只能是0,1,2,3,{0,1,2,3}和{4,5,-2,11}是模4的完全剩余系。可以看出0和4,1和5,

m0_59578053的博客 1211

费马小定理

费马小定理: 对于质数 p,当 a 是一个与 p 互质的整数时有: a^(p-1)≡1(mod p) 当然也可以化成: a ^ p ≡ a(mod p)

dhjfhcnf的博客 829

数论基础详解:整除、同余、费马小定理与模逆元代码实践

初等数论研究的是整数性质,看似远离工程实践,实则是现代高端技术的底层根基。理解整除、因数与素数这些基础定义,才能真正建立对唯一分解定理和同余概念的直观把握。费马小定理与欧拉定理揭示了模逆元存在的条件,也为快速幂、素性检测提供了理论支撑;借助扩展欧几里得算法,可把这些原理落地成直接可用的求逆代码。这类理论广泛服务于RSA等密码协议与算法竞赛中的同余问题。以“概念—定理—代码验证”的方式推进数论入门,能摆脱死记公式的旧模式,真正形成可迁移的推导能力。

weixin_32377497的博客 342

关于逆元(费马小定理,exgcd)

我们发现一个分数 mod 一个整数时是不能直接模运算的,但是可以进行乘法运算,我们就要用到逆元(大概可以看做一个数%p意义下的倒数吧)虽然已经有2种方法,但是对于这样的题。,这个式子的答案怎么求呢?也就是说,它的定义可以表示为。于是我们不得不学习线性逆元。就可以使用递推法。

wichiene 2992

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6182

芯片设计流程中的def文件

在实际的DEF文件中,每个部分都包含了与实际设计相关的详细信息,这个模板只展示了每个部分的基本结构。在实际应用中,DEF文件通常由EDA(电子设计自动化)工具在完成布局(Placement)和布线(Routing)步骤后自动生成,在集成电路设计中,DEF(Design Exchange Format)文件的模板具体内容会依设计的复杂性和特定需求而变化。简而言之,LEF文件提供了单元的物理特性和规则,而DEF文件使用这些规则来确定单元。)文件描述了特定设计中所有物理元素的精确放置和连线信息。

qq_36045093的博客 4860

数论 - 逆元及费马小定理

逆元 代码如下 模版题 题意 题解 费马小定理 代码如下 费马小定理推广欧拉定理 求欧拉函数值代码 筛出欧拉函数值的表代码逆元在费马小定理之前,我们先引入逆元的概念,考虑求解一个同余线性方程ax≡b(modm)ax\equiv b(mod m),要怎样求解这个方程呢,在此之前,我们先看一下求解一般的线性方程的方法,一般地,我们能将一个一元一次方程化为如下的形式:ax=bax=b,那么在a有倒数的情

fanyiningHH的博客 754

诠视MR眼镜Unity开发设置_Unity2020.3.38

请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。

m0_71932574的博客 601

快速幂求逆元—逆元求解的证明以及理解

简单理解 求逆元首先要有两个数,a、p,求解a % p的乘法逆元,设a % p = b,那么就是求b的乘法逆元。 首先要说的是,当a % p == 0的时候,就没有乘法逆元了。 假设b的乘法逆元是b^-1 求出的乘法逆元有个主要的性质就是 b∗b−1%p=1 b * b^{-1} \% p = 1 b∗b−1%p=1 求逆元 给定b、m,其中m为质数,求b模m的乘法逆元 对于任意整数 a, 满足b|a(b整除a),设存在整数一个x,满足 a/b≡a∗x(mod  m) a/b\equiv

Darkgreen的博客 1412

S型速度曲线进阶:基于Sin²(x)的PLC平滑运动控制实践(以伺服/步进系统为例)

本文深入探讨了基于Sin²(x)的S型速度曲线在PLC平滑运动控制中的实践应用,特别针对伺服/步进系统。通过对比传统梯形曲线和七段S曲线,详细展示了Sin²(x)曲线在加速度连续性、计算效率和参数自适应性方面的优势,并结合博图平台的具体实现技巧和实战案例,为精密运动控制提供了优化方案。

weixin_28718793的博客 242

Lumerical FDTD新手必看:从零开始搭建光子晶体仿真环境(附完整脚本)

本文为Lumerical FDTD新手提供光子晶体仿真环境的完整搭建指南,涵盖从基础参数设置到脚本编写的全流程。通过典型光子晶体带隙分析案例,详细讲解结构建模、仿真参数配置及后处理技巧,并附赠完整MATLAB脚本,帮助用户快速掌握FDTD仿真核心技术。

3c4x5z6v7b的博客 1050

求解逆元

定义:(a*b)%c,则a和b关于c互为逆元。 推论:(a/b)mod m = (a/b)*1mod m = (a/b)*b*c modm=a*c(mod m); 即a/b的模等于a*b的逆元的模; 求解: 1:费马小定理 费马小定理:a是不能被质数p整除的正整数(费马小定理成立的条件),则有a^(p-1)=1 (mod m); 推导:a^(p-1) = 1 (mod p) = a*a^(...

你猜的博客 658

计算机视觉-深度学习图像检测方法梳理

计算机视觉-深度学习图像检测方法梳理 由于之后要转方向啦,趁这段时间整理手中硕士研究方向的一些阅读笔记,这是一篇关于计算机视觉的基础知识梳理 先搞清一些小知识点 首先我们要弄清楚图像分类、目标定位、语义分割、实例分割的区别 a. 图像分类 :给定一张输入图像,图像分类任务旨在判断该图像所属类别; b. 目标定位 :在图像分类的基础上,我们还想知道图像中的目标具体在图像的什么位置,通常是以包围盒的(bounding box)形式; c. 语义分割 :语义分割是目标检测更进阶的任务,目标检测只需要框出每个目

qq_41662991的博客 9953

乘法逆元小记

乘法逆元 逆元定义 求解方式 ——1. 线性同余方程+扩展欧几里得算法 ——2. 费马小定理+快速幂 ——3. 线性递推式 乘法逆元的定义 对于一个整数 a ,以及一个整数 p,存在一个实数x 使得 ax≡c(mod p) ,则称 x 为 a 在 c 模 p意义下的逆元 。ax≡c(mod p) 表示ax与c模p具有相同的余数,即同余,也可表示为 np+c = ax(相当于把c当做ax%p的...

VedaEistelu的博客 334

Microsoft Dynamics 365软件二次开发:Dynamics365部署与版本控制策略

在Microsoft Dynamics 365中,自定义实体允许开发者扩展系统以满足特定业务需求。自定义实体可以包含字段、选项集、关系和其他属性,与标准实体类似,但完全由用户定义。1. 登录到Dynamics 365环境。2. 转到“解决方案”区域,选择“自定义”。3. 在“自定义”菜单中,选择“实体”。4. 点击“新建”,输入实体名称,例如“客户反馈”。5. 添加字段,如“反馈类型”、“反馈日期”、“描述”等。6. 设置主键和唯一标识符。7. 定义关系,如与“客户”实体的关联。

kkchenjj的博客 2208

ArcGIS Pro符号化教程

本文详细介绍了ArcGIS Pro的软件设置和符号化操作步骤。主要包括:1)设置默认工程目录和关闭地图自动加载;2)创建新工程的基本流程;3)点要素的单一符号化方法,包括样式修改和图层调整;4)图表符号显示过滤器的使用,涉及字段添加、图表类型选择和背景设置。文章还提供了操作截图和数据下载链接,适合GIS初学者学习ArcGIS Pro的基础符号化操作。

WwLK123的博客 548

NOI Online #2 入门组 T3 建设城市

原题链接 简洁题意: 给定一个nnn,构造一个每个数都不大于mmm,nnn左边不下降,右边不上升,nnn最大且ax=aya_x=a_yax​=ay​的序列。 分析: 这个题可以发现,如果没有ax=aya_x=a_yax​=ay​的要求就是分成左右两边,mmm种高度看成盒子,要把nnn个楼放进去。可以给每个盒子手动放一个球,就变成了插板法:Cn+m−1m−1C_{n+m-1}^{m-1}Cn+m−1m−1​ ...

weixin_44043668的博客 245

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

求逆元的几种常用方法

求逆元: 1.顺推求逆元: 证明 inv[1]=1;//顺推求逆元 for(int i=1;i<=n;i++) inv[i]=( (mod-mod/i)*inv[mod%i] +mod ) %mod; 2.求阶层的逆元: void init_fac(int n) { fac[0]=1; for(int i=1...

weixin_30628801的博客 174

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

求乘法逆元

乘法逆元,是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a‘,具有性质a×a’=a’×a=e,其中e为该群的单位元。(百度百科的解释,鬼才能看懂┑( ̄Д  ̄)┍)我理解的乘法逆元是,若a*b≡1(mod p),则b是a的乘法逆元,a是b的乘法逆元,b也可以写成a-1乘法逆元有什么用呢? 在取模运算中,有a*b%p=(a%p) * (b%p) 但是没有(a/b)%p=(a%p)/(b%p)

long-long-ago 1042

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

乘法逆元——详解

如果一个线性同余方程,则称为的逆元,记作。

w_w_wwwww的博客 860

省选+NOI 第八部分 数论

1.线性基 线性回归-线性基函数模型 线性回归-线性基函数模型_哔哩哔哩_bilibili 0219数论寒假作业选讲2【线性基】 0219数论寒假作业选讲2【线性基】_哔哩哔哩_bilibili 线性基 线性基_ SEIZE THE DAY-优快云博客 线性基详解 线性基详解_a_forever_dream的博客-优快云博客_线性基 线性基(bzoj 2460: [BeiJing2011]元素) 线性基(bzoj 2460: [BeiJing2011]元素)_加载中.

青少年趣味编程 3058

第4章 同余问题《信息学奥赛一本通 提高篇》

费马小定理(介绍+证明+逆元代码实现)_地球太危险了吧-优快云博客。

青少年趣味编程 1762

.快速幂.

介绍了快速幂的原理以及用法

2301_80358171的博客 355

数论总结(中) (中阶数论)

一.逆元的求解 1.引理: a.费马小定理 假如\(a\)是一个整数,\(p\)是一个素数,\(gcd(a,p)=1\),那么有: \[a^{p-1}≡1(mod(p))\] 费马小定理应用: [1]. 费马小定理降次:\(p\)是素数,\(a\),\(p\)互质,则\(a^b mod (p)={a^{(b) mod (p-2)}} mod (p)\) [2]. 求质数逆元:若p是素数,...

df4516的博客 400
上一篇: MySql数据库之审计(开启log+设置init-connect实现无插件审计)
下一篇: Linux相关操作记录
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值