到国庆假期都是复习阶段。。所以把一些东西整理重温一下。

gcd(a,p)=1,ax≡1(%p),则x为a的逆元。注意前提:gcd(a,p)=1;

方法一:拓展欧几里得

gcd(a,p)=1,ax≡1(%p),转化为ax+py≡1,拓展欧几里得可解决ax+by=gcd(a,b)

 1 void exgcd(int a,int b,int &x,int &y)
 2 {
 3     if(b==0) {
 4         x=1,y=0;
 5         return a;
 6     }
 7     int g=exgcd(b,a%b,x,y);
 8     int t=x;x=y;y=t-(a/b)*y;
 9     return g;
10 }

方法二:费马小定理

a^(p-1)≡1(%p),则a^(p-2)就是逆元。快速幂。

求逆元的O(n)算法

 inv[i]=((mod-mod/i))*inv[mod%i]%mod;

转自https://blog.csdn.net/acdreamers/article/details/8220787,侵删

它的推导过程如下,设,那么

对上式两边同时除,进一步得到

再把替换掉,最终得到

初始化,这样就可以通过递推法求出模奇素数的所有逆元了。

转载于:https://www.cnblogs.com/KonjakJuruo/p/9688310.html

求逆元的两种方法+求逆元的O(n)递推算法相关推荐

  1. 用matlab计算稳态误差,利用Matlab求稳态误差的两种方法.

    利用Matlab求稳态误差的两种方法 摘要:稳态误差是系统控制精度或抗扰动能力的一种度量,它是稳态性能的一个重要指标.本文介绍利用Matlab的控制系统工具箱和Simulink工具箱求取系统误差稳态的 ...

  2. 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐

    题目链接 牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度deprootdep_{root}deproot​​为0,对于任意一个非根的点,我们将他到 ...

  3. 【笔试题】求最小公倍数 C++(两种方法)

    题目 本题链接:求最小公倍数 正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. 输入描述: 输出描述: 示例1: 解题思路一: 暴力破解 从 ...

  4. 求最大公因数的两种方法(高效方法)

    给定两个数,例如a=27,b=12a=27, b=12a=27,b=12,我们知道a, b的最大公因数为3. 下面将介绍两种求最大公因数的高效方法: (1)辗转相除法 辗转相除法有一个高大上的名字:欧 ...

  5. C++求最大公约数 两种方法

    第一种方法 #include <iostream> using namespace std;int main() {int n1, n2;cout << "输入两个整 ...

  6. Java中求素数的两种方法

    *如何求素数? ** 比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数或素数. 所以我们只需要在2~n-1的数中,能找到一个数能整除n,则n为素数. 所以用两个循环遍历就可以得到素 ...

  7. 行列式求值的两种方法——Java实现

    基本概念: 行列式是数,矩阵是一个式子!!! 余子式与代数余子式: 余子式:在 n 阶行列式中,把某个元素所在的行列都去掉之后,剩下的 n-1 阶行列式就叫做该元素的余子式: 代数余子式: 基本性质: ...

  8. C语言两种方法求圆的面积与周长编程

    方法一:程序如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {const float pi = 3.14; ...

  9. python编程求平均值_Python编程求平均值的两种方法是?

    方法一: scores = [91, 95, 97, 99, 92, 93, 96, 98] scores2 = [] avg = sum(scores) / len(scores) print('平 ...

最新文章

  1. 专设AI周会 高管悉数到场 微软CEO有多重视人工智能?
  2. 【渝粤题库】国家开放大学2021春2508学前儿童语言教育题目
  3. java final 变量只读_java final的使用总结
  4. 为什么spring中的controller跳转出错_你的业务代码中Spring声明式事务处理正确了吗?
  5. “你在哪里上班?”“呵呵呵!”
  6. .net工作流框架,拖拽式表单设计,仿钉钉流程设计
  7. 整理JRE瘦身或精简JRE
  8. USB 转 RS-485 / 422 接口转换器
  9. 文件夹批量重命名编号的方法
  10. 短信软件平台源码数据库配置与客户端功能介绍|国际短信通道短信后台-移讯通
  11. ipv6文件服务器,ipv6怎么配置服务器
  12. 【雷丁学姐】借助大数据进行学生的学校申请预测
  13. 什么是“系统空闲进程”,为什么使用那么多的CPU?
  14. 【每日一练】21—CSS实现炫酷动画背景
  15. android studio夜间模式,android studio怎样实现夜间模式
  16. biosequence analysis using profile hidden Markov models(使用隐马尔可夫模型分析序列)
  17. Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】
  18. Android USB编程
  19. Qt Quick实现九宫格划指锁屏视图
  20. 人流量统计api接口_人数统计_区域人数实时统计

热门文章

  1. e_msg_c_gs_enter_gs_req
  2. 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
  3. CVPR 2021奖项出炉:最佳论文花落马普所,何恺明获提名,首届黄煦涛纪念奖颁布...
  4. X光肺炎检测竞赛上线!
  5. 【项目合作】低清老视频转高清,视频超分辨
  6. CV Code | 本周新出计算机视觉开源代码汇总(含目标跟踪、语义分割、姿态跟踪、少样本学习等)...
  7. android 爆炸动画,一个可以给view显示粒子爆炸/绽放效果的android库 Bloom
  8. 世界一流大学博士生典型科研特征
  9. 2020年还需要阅读的10篇人工智能论文
  10. 147页详述「结构在神经网络中的复兴」,图注意力网络一作博士论文公开