首页 > 其他分享 >乘法逆元

乘法逆元

时间:2022-11-19 21:58:02浏览次数:43  
标签:return int re 逆元 乘法 equiv mod

若线性同余方程 \(ax\equiv1(\mod b)\),则称 \(x\) 为 \(a\mod b\)时的逆元,记作\(a^{-1}\)。

扩展欧几里得求逆元。

要求 \(gcd(a,b)=1\).

int exgcd(int a,int b,int&x,int&y){
    if(!b)return x=1,y=0,a;
    int g=exgcd(b,a%b,y,x);
    y-=a/b*x;
    return g;
}

\((x\mod p+p)\mod p\) 即为 \(a\mod b\) 逆元。

费马小定理求逆元。

要求 \(b\) 为质数。

\(ax\equiv a^{b-1}(\mod b)\),则 \(x\equiv a^{b-2}(\mod b)\).

inline int po(int x,int k,int mod,int re=1){for(;k;k>>=1,x=x*x%mod)(k&1)&&(re=re*x%mod);return re;}

\(po(a,b-2,b)\) 即为 \(a\mod b\) 的逆元。

线性求逆元。

求 \(1\) 到 \(n\) d的逆元。

\(1\) 的逆元为 \(1\).

设 \(k=\left \lfloor p/i \right \rfloor,j=p\mod i\),则 \(p=k*i+j\),\(k*i+j \equiv 0(\mod p)\).

两边同乘 \(i^{-1}+j^{-1}\),得到 \(k*j^{-1}+i^{-1} \equiv 0(\mod p)\).

于是有 \(i^{-1} \equiv -\left \lfloor p/i \right \rfloor * (p\mod i)^{-1}\),将负数加上模数即可。

inline void prework(int n){
    inv[1]=1;
    for(int i=2;i<=n;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
}

标签:return,int,re,逆元,乘法,equiv,mod
From: https://www.cnblogs.com/safeng/p/16907294.html

相关文章

  • JavaScript对象_Math和JavaScript语法_练习99乘法表
    JavaScript对象_Math:Math:数学1.创建:特点:Math对象不用创建,直接使用。Math.方法名();2.方法:random():返回0~1之间的随机数。含0不含1ceil(x):对数进行上舍入。floo......
  • 队列的应用 乘法分配律
    以下“输入顺序排序”都为先输入的先输出一输入:一个乘法,乘法由两个加减法组成,两个加减法之间由括号相隔、或者没有相隔保证每一个变量由一个字母(包括大小写)组成若一个加......
  • 59:嵌套循环练习_九九乘法表_打印表格数据
    【操作】利用嵌套循环打印九九乘法表forminrange(1,10):forninrange(1,m+1):print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")print()输......
  • JavaScript语法特殊语法和流程控制语句以及练习99乘法表
    JavaScript语法_特殊语法1.语句以;结尾,如果一行只有一条语句则;可以省略(不建议)2.变量的定义使用var关键字,也可以不使用用:定义的变量是局部变量不用:定义对的变量......
  • 【模板】多项式乘法 FFT
    postedon2022-08-0223:57:12|under模板|source膜拜,抄写problem\[c_k=\sum_{i+j=k}a_ib_j.\]\(a,b\)已知,要求\(O(n\logn)\)。prework:复数定义初中数学中......
  • 输入9显示9*9乘法表
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidprint_table(intn){  inti=0;  for(i=1;i<=n;i++) {  intj=0; for(j=1;j<=i;j++)......
  • 快速幂及求逆元
    目录快速幂1、快速幂的作用2、算法原理3、逆元快速幂1、快速幂的作用  快速幂可以帮助我们在\(O(\logk)\)的时间复杂度内计算出\(a^k\quadmod\quadp\)的结果。2......
  • PTA一元多项式的乘法与加法运算
    设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000......
  • Day10.2:九九乘法表打印详解思路
    九九乘法表打印按照以下格式对九九乘法表正确输出:/*1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2......
  • 九九乘法表
    #include<stdio.h>#include<stdlib.h>intmain(){inti=0;intj=0;for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf......