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

乘法逆元

时间:2023-07-24 16:12:53浏览次数:32  
标签:算法 逆元 int64 ans modpow 互质 乘法

在数论中,如果a和m是正整数,且它们互质,那么a在模m意义下的逆元是一个正整数x,满足ax ≡ 1 (mod m)。也就是说,x是一个整数,满足ax除以m的余数为1。

求解a模m意义下的逆元有多种方法,其中一种常见的方法是使用快速幂算法。以下是使用快速幂算法求解a模m意义下的逆元的示例代码:

int64_t modpow(int64_t a, int64_t b, int64_t m) {
    int64_t ans = 1;
    a %= m;
    while (b > 0) {
        if (b & 1) {
            ans = ans * a % m;
        }
        a = a * a % m;
        b >>= 1;
    }
    return ans;
}

int64_t modinv(int64_t a, int64_t m) {
    return modpow(a, m - 2, m);
}

其中,modpow函数使用快速幂算法计算a的b次方模m的结果,modinv函数使用快速幂算法计算a模m意义下的逆元。这里使用了费马小定理,即a^(p-1) ≡ 1 (mod p)(p是质数),因此可以将逆元计算为a^(m-2)模m的结果。

需要注意的是,在使用快速幂算法计算幂次时,由于指数可能很大,可能会导致数据溢出。因此,在计算过程中,应该对每一步的结果都取模,以保证结果不会溢出。

另外,还需要注意的是,只有当a和m互质时,a模m的逆元才存在。如果a和m不互质,那么a模m的逆元不存在。

标签:算法,逆元,int64,ans,modpow,互质,乘法
From: https://www.cnblogs.com/J-12045/p/17577496.html

相关文章

  • 矩阵乘法指数的基域不变性
    昨天意识模糊的时候突然想到了这个东西如何证明,重新发明了一遍.对于域\(F\),我们记\(\omega(F)\)为在域\(F\)上的矩阵乘法的张量秩给出的\[\omega(F)=\inf_{n}\frac{\logR(\langlen,n,n\rangle)}{\logn},\]我们知道,对于无限域\(F\)来说,这本质刻画了矩阵乘......
  • 利用for循环实现乘法表、三角形
    publicclassChengfademo{publicChengfademo(){}publicstaticvoidmain(String[]args){for(inti=1;i<=9;++i){for(intj=1;j<=i;++j){System.out.print(i+"*"+j+"......
  • Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择|附代码数据
    全文下载:http://tecdat.cn/?p=22319最近我们被客户要求撰写关于偏最小二乘法(PLS)回归的研究报告,包括一些图形和统计输出。本文建立偏最小二乘法(PLS)回归(PLSR)模型,以及预测性能评估。为了建立一个可靠的模型,我们还实现了一些常用的离群点检测和变量选择方法,可以去除潜在的离群点和只......
  • 1307:高精度乘法
    1307:【例1.3】高精度乘法时间限制:1000ms      内存限制:65536KB【题目描述】输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。【输入】输入两个高精度正整数M和N。【输出】求这两个高精度数的积。【输入样例】363【输出样例】......
  • 题解 P3803 【模板】多项式乘法(FFT)
    感觉题解区不是写的太高深,就是写的太高深。所以给初中、小学和幼儿园的萌新准备一篇简单易懂的良心题解~前置知识一、多项式的系数表示法和点值表示法。\(A(x)=\sum\limits_{i=0}^{n-1}a_i\cdotx^i\)系数:\((a_0,a_1,a_2...a_{n-2},a_{n-1})\)。点值:\((x_0,y_0),(x_1,y_1)...(......
  • [数学]乘法逆元
    1.定义逆元素,是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数。如果说a在模p意义下的乘法逆元是x,那么ax≡1(modp)2.求逆元的方法·扩展欧几里得同余方程的转化扩展欧几里得的求解代码如下#include<bits/stdc++......
  • 【真·随笔】矩证乘法的基本定理(修复)
    此随笔是修复版,请尊重原创。修复版markdown见下修复自矩阵乘法笔记-Elegia:https://www.luogu.com.cn/blog/EntropyIncreaser/ju-zhen-sheng-fa-bi-ji矩阵乘法的基本定理矩阵乘法结合律设有矩阵\(A,B,C\),分别的大小为\(n\timesm,m\timesp,p\timesq\)。求证......
  • 矩阵乘法
    矩阵乘法入门矩阵类似一个二维数组吧。矩阵的运算矩阵的加法\[C_{i,j}=A_{i,j}+B_{i,j}\]我不知道有什么用。矩阵的减法\[C_{i,j}=A_{i,j}-B_{i,j}\]我也不知道有什么用。矩阵的乘法\[C_{i,j}=\sum_k^{m}A_{i,k}B_{k,j}\]即答案矩阵的第\(i\)行第\(j\)......
  • 【模板】64 位整数乘法
    题目描述求a乘b对k取模的值,其中1≤*a,b,k≤1018输入     输入:一行:a,b,k输出     一个数字,为答案样例输入627样例输出5ACcode#include<bits/stdc++.h>usingnamespacestd;unsignedlonglonga,b,k,ans;intmain(){cin>>a>>b>>......
  • 永磁同步电机参数辩识,采用最小二乘法进行的仿真
    永磁同步电机参数辩识,采用最小二乘法进行的仿真ID:9850625716661035......