首页 > 其他分享 >转载:线性求逆元推导

转载:线性求逆元推导

时间:2023-08-20 20:13:01浏览次数:39  
标签:frac 推导 ll times 逆元 线性 inv mod

转载自:线性求逆元推导 - Katoumegumi - 博客园 (cnblogs.com)

本篇介绍线性求逆元的推导过程

  • 对于一个质数 \(P\),我们需要求出 \(1-N\) 在 \(\mod P\) 意义下的逆元,如何使用线性的方法求其逆元呢?

  • 首先,我们设 \(t=\lfloor\frac{P}{i}\rfloor,k=P\mod i\);

  • 对于 \(i\times t+k\equiv0 \pmod{P}\),我们可以做出如下推导:

  • 等式两边同时除以 \(i\times k\),我们可以得到新式子 \(\frac{t}{k}+\frac{1}{i}\equiv0 \pmod{P}\);

  • 从而得到: \(\lfloor\frac{P}{i}\rfloor\times inv[P\mod i]+inv[i]≡0 \pmod{P}\);

  • 最后得到 \(inv[i]=(-\lfloor\frac{P}{i}\rfloor+P)\times inv[P\mod i]%P\);

\(code:\)

#include<stdio.h>
#include<algorithm>
#define ll long long
using namespace std;

const int maxn=(1e7*2)+2;
ll n,p,inv[maxn];
inline ll add(ll a,ll b){return a+b<p?a+b:a+b-p;}
inline ll mul(ll a,ll b){return a*b<p?a*b:a*b%p;}

int main()
{
	scanf("%lld%lld",&n,&p);inv[1]=1;
	for(int i=2;i<=n;i++) inv[i]=mul(add(-p/i,p),inv[p%i]);
}

标签:frac,推导,ll,times,逆元,线性,inv,mod
From: https://www.cnblogs.com/znpdco/p/17644488.html

相关文章

  • 高斯白噪声下雷达测量精度---------距离精度公式详细推导
    一、背景前面写的一篇博客毫米波雷达入门知识里面介绍了距离精度、速度精度和角度精度。并给出了一个简单公式来说明哪些因素影响它们的大小。但具体怎么得到的并未说明,正好前两天在《现代雷达系统分析和设计》这本书上有看见相关内容,就趁着周末,再加上光明区的这个图书馆这么......
  • 「解题报告」P5431 乘法逆元 2
    题目链接:【模板】乘法逆元2这道题不建议叫乘法逆元,可以直接当一道数学题去处理,我们观察这个式子\(\sum\limits_{i=1}^n\frac{k^i}{a_i}\),那么我们直接通分就和即可,分子就是\(\sum\limits_{i=1}^nk^i\cdot(a_1\sima_i-1\cdota_i+1\sima_n)\),预处理出前缀积和后缀积即可,最......
  • Gym103687D The Profiteer:回滚莫队信息双指针可以做到线性对数
    标题写得好所谓的回滚莫队信息意思是,设信息保存在两个大小分别为\(a,b\)的结构上,将这两个信息进行合并得到大小为\(a+b\)的信息需要的时间为\(\Omega(\min\{a,b\}\cdotf(n))\);而给定一个大小为\(1\)的信息,可以在\(\mathrmO(f(n))\)时间内将它加入到任何一个结构中......
  • 非线性方程的解
    非线性方程的解From2022-12-2To2022-12-Learningfrom物理学中的非线性方程的逐步搜索法和二分法求解非线性方程的迭代法弦截法目录非线性方程的解逐步搜索法二分法简单迭代法(不动点迭代法)例:求\(e^{2x}+x-4=0\)的根迭代函数收敛判定迭代函数收敛定理加速算法-......
  • 线性层
    线性层线性层结构线性连接是全连接的一种形式,但全连接不一定是线性连接。全连接层可以使用非线性激活函数,而线性连接只进行简单的线性映射。线性连接如下图:神经网络中的使用torch.nn.Linear(in_features,out_features,bias=True,device=None,dtype=None)in_features(......
  • 学不会的线性基
    前言最后一次“杭电杯”结束了捏,看到同级的另一个队哐哐过题,感觉自己好菜捏......
  • 算法学习笔记-逆元
    前言:还记得小学学的倒数吗?倒数的定义大概是若\(ax=1\),则称\(x\)为\(a\)的倒数。而逆元,其实可以看做在模意义下的倒数。也就是\(ax\equiv1\pmodp\),且\(a\)与\(p\)互质,则称\(x\)为\(a\)在模\(p\)意义下的乘法逆元,记作\(a^{-1}\)。本文就将简要介绍求逆元的......
  • ITK 实例3 PNG图像进行二维非线性映射
    1#include"itkImage.h"2#include"itkImageFileReader.h"3#include"itkImageFileWriter.h"4//非线性映射滤波器头文件5#include"itkSigmoidImageFilter.h"67intmain(intargc,char*argv[])8{9/*if(argc......
  • ITK 实例4 MHA格式文件进行三维非线性映射
    1#include"itkImage.h"2#include"itkImageFileReader.h"3#include"itkImageFileWriter.h"4//非线性映射滤波器头文件5#include"itkSigmoidImageFilter.h"6//注:非线性映射算法只能实现像素值(0-255)范围的输入输出映射。7intmain(intargc,cha......
  • 【线性代数】线性方程组 如何求方程组的解/基础解系/通解
    1.如何求齐次方程组的基础解系前面已经学过:基础解系的定义为:一个向量组中所有的向量都是原方程的解,并且线性无关,又能由这个向量组线性表出这个方程组的所有解。先讲齐次方程组是因为它右侧常数都为0,解起来更为简单。步骤:先对齐次方程组的系数矩阵作初等行变换,直到化为行阶梯矩......