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

乘法逆元

时间:2023-10-08 13:44:09浏览次数:31  
标签:int long 逆元 ans 乘法 mod

推荐视频:模意义下的乘法逆元

特点:除以一个数取模等于乘以这个数的逆元取模:a/n%mod==a* n^(mod-2)%mod(费马小定理)

1.费马小定理
前提:p为质数
n的逆元等于n^(p-2)

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int mod=998244353;
int _pow(int a,int b=mod-2){
	int ans=1;
	while(b){
		if(b&1) ans=(1LL*ans*a)%mod;
		a=1LL*a*a%mod;
		b>>=1;
	}
	return ans;
}
int main(){
	int n;
	cin>>n;
	if(mod%n){
		cout<<_pow(n);
	}
	return 0;
}

扩展偶
++

<++>

线性求1-n的逆元

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int N=2e5+10,mod=998244353;
int inv[N];
int main(){
	int n;
	cin>>n;
	inv[1]=1;
	for(int i=2;i<=n;i++){
		inv[i]=(mod-mod/i)*inv[mod%i]%mod;
	}
	return 0;
}

标签:int,long,逆元,ans,乘法,mod
From: https://www.cnblogs.com/bu-fan/p/17748839.html

相关文章

  • 算法:九九乘法表(JS)
    九九乘法表1functioncreateMultiplicationTable(){2lettable='';//创建一个空字符串用于存储乘法表3for(leti=1;i<=9;i++){//外层循环控制行数,从1到94for(letj=1;j<=i;j++){//内层循环控制每行的列数,从1到当前行数i......
  • 矩阵的乘法运算与css的3d变换(transform)
    theme:qklhk-chocolate引言:你有没好奇过,在一个使用了transform变换的元素上使用window.getComputedStyle(htmlElement)['transform']查询出来的值代表什么?为什么硬件加速要使用transform,以及为什么硬件加速会快?小科普:关于矩阵的乘法 以两个二阶齐次矩阵相乘为例 [......
  • 矩阵成真!Pytorch最新工具mm,3D可视化矩阵乘法、Transformer注意力
    前言 Pytorch团队推出的最新3D可视化最新工具mm,能够将矩阵乘法模拟世界还原。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【C......
  • 乘法逆元
    (测试)乘法逆元定义数\(a\)模\(p\)意义下的乘法逆元(\(\texttt{ModularMultiplicativeInverse}\))被定义为线性同余方程\(ax\equiv1\pmodp\)的解。条件\(\gcd(a,p)=1\)是数\(a\)在模\(p\)意义下存在乘法逆元的充分必要条件。求法1.扩展欧几里得法既然乘法......
  • pthread实现多线程矩阵乘法
    #include<pthread.h>#include<stdio.h>#include<windows.h>#include<iostream>usingnamespacestd;#pragmacomment(lib,"pthreadVC2.lib")#definerowCount1300#definemediumCount1500#definecolumnCount5000#definen_threa......
  • 线性求逆元
    线性求逆元时间复杂度:\(O(n)\)问题:求取\(1...n\)关于质数\(p\)的逆元。应用举例:求取组合数\(C_n^m\mod\p\),其中\(1\leqn,m\leq10^7,p=998244353\)。\[C_n^m\equiv\frac{n!}{(n-m)!m!}(mod\p)\]\[C_n^m\equivn!*(n-m)!^{-1}*m!^{-1}(mod\p)\]假设我们......
  • 矩阵乘法
    别人的博客Luogu-P3390【模板】矩阵快速幂#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#definedebug(x)cout<<#x<<"="<<x<<endl;constintN=105,M=1e9+7;intn;llk;inlinellread(){ lls=0,......
  • 【模板】多项式乘法、乘法逆、除法、取模、常系数齐次线性递推
    以下代码必须开-O2#include<algorithm>#include<cassert>#include<cstdio>#include<cstring>#include<vector>usingnamespacestd;#ifdefLOCAL#definedebug(...)fprintf(stderr,##__VA_ARGS__)#else#definedebug(...)void(0)#......
  • 高精度乘法
    1#include<iostream>2#include<vector>3usingnamespacestd;45vector<int>mul(vector<int>&A,int&b)6{7vector<int>C;8intt=0;9for(inti=0;i<A.size()||t;i++)10......
  • 数论——线性同余方程、乘法逆元 学习笔记
    数论——线性同余方程、乘法逆元众所周知:说明除非特殊说明,以下提到的exgcd函数均定义为://ax+by=gcd(a,b)llexgcd(lla,llb,ll&x,ll&y,lld=0){if(b==0)x=1,y=0,d=a;elsed=exgcd(b,a%b,y,x),y-=a/b*x;return......