求逆元的两种方法+求逆元的O(n)递推算法
到国庆假期都是复习阶段。。所以把一些东西整理重温一下。
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)递推算法相关推荐
- 用matlab计算稳态误差,利用Matlab求稳态误差的两种方法.
利用Matlab求稳态误差的两种方法 摘要:稳态误差是系统控制精度或抗扰动能力的一种度量,它是稳态性能的一个重要指标.本文介绍利用Matlab的控制系统工具箱和Simulink工具箱求取系统误差稳态的 ...
- 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐
题目链接 牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度deprootdep_{root}deproot为0,对于任意一个非根的点,我们将他到 ...
- 【笔试题】求最小公倍数 C++(两种方法)
题目 本题链接:求最小公倍数 正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. 输入描述: 输出描述: 示例1: 解题思路一: 暴力破解 从 ...
- 求最大公因数的两种方法(高效方法)
给定两个数,例如a=27,b=12a=27, b=12a=27,b=12,我们知道a, b的最大公因数为3. 下面将介绍两种求最大公因数的高效方法: (1)辗转相除法 辗转相除法有一个高大上的名字:欧 ...
- C++求最大公约数 两种方法
第一种方法 #include <iostream> using namespace std;int main() {int n1, n2;cout << "输入两个整 ...
- Java中求素数的两种方法
*如何求素数? ** 比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数或素数. 所以我们只需要在2~n-1的数中,能找到一个数能整除n,则n为素数. 所以用两个循环遍历就可以得到素 ...
- 行列式求值的两种方法——Java实现
基本概念: 行列式是数,矩阵是一个式子!!! 余子式与代数余子式: 余子式:在 n 阶行列式中,把某个元素所在的行列都去掉之后,剩下的 n-1 阶行列式就叫做该元素的余子式: 代数余子式: 基本性质: ...
- C语言两种方法求圆的面积与周长编程
方法一:程序如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {const float pi = 3.14; ...
- python编程求平均值_Python编程求平均值的两种方法是?
方法一: scores = [91, 95, 97, 99, 92, 93, 96, 98] scores2 = [] avg = sum(scores) / len(scores) print('平 ...
最新文章
- 专设AI周会 高管悉数到场 微软CEO有多重视人工智能?
- 【渝粤题库】国家开放大学2021春2508学前儿童语言教育题目
- java final 变量只读_java final的使用总结
- 为什么spring中的controller跳转出错_你的业务代码中Spring声明式事务处理正确了吗?
- “你在哪里上班?”“呵呵呵!”
- .net工作流框架,拖拽式表单设计,仿钉钉流程设计
- 整理JRE瘦身或精简JRE
- USB 转 RS-485 / 422 接口转换器
- 文件夹批量重命名编号的方法
- 短信软件平台源码数据库配置与客户端功能介绍|国际短信通道短信后台-移讯通
- ipv6文件服务器,ipv6怎么配置服务器
- 【雷丁学姐】借助大数据进行学生的学校申请预测
- 什么是“系统空闲进程”,为什么使用那么多的CPU?
- 【每日一练】21—CSS实现炫酷动画背景
- android studio夜间模式,android studio怎样实现夜间模式
- biosequence analysis using profile hidden Markov models(使用隐马尔可夫模型分析序列)
- Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】
- Android USB编程
- Qt Quick实现九宫格划指锁屏视图
- 人流量统计api接口_人数统计_区域人数实时统计
热门文章
- e_msg_c_gs_enter_gs_req
- 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
- CVPR 2021奖项出炉:最佳论文花落马普所,何恺明获提名,首届黄煦涛纪念奖颁布...
- X光肺炎检测竞赛上线!
- 【项目合作】低清老视频转高清,视频超分辨
- CV Code | 本周新出计算机视觉开源代码汇总(含目标跟踪、语义分割、姿态跟踪、少样本学习等)...
- android 爆炸动画,一个可以给view显示粒子爆炸/绽放效果的android库 Bloom
- 世界一流大学博士生典型科研特征
- 2020年还需要阅读的10篇人工智能论文
- 147页详述「结构在神经网络中的复兴」,图注意力网络一作博士论文公开