zoukankan      html  css  js  c++  java
  • 线性求逆元

    前几天我的指导老师给了我一个提高组的考纲,看了看发现数论缺了一大块,一波补习学会(背过)了费马小定理的结论,然后根据结论开始求逆元

    做的就是这个题

    信心满满的提交然后挂了

    然后跟随某个大佬学了学如何线性的求逆元(感觉别的大佬们讲的都好难懂)

    然后我来再讲一遍(帮助理解)

    首先我们要求i的逆元,我们定义为inv[i],现在定义k和t,ki+r0(mod p)

    然后我们移个项:r-ki(mod p)

    然后等式两边同时除以ri

    就会变成:i分之1r分之-k(mod p)

    我们知道i分之1等于i的逆元

    还知道r分之1等于r的逆元

    那么整理一下可知:inv[i]-k*inv[r](mod p)

    而且我们还知道r是小于i的,所以r=p%i

    再整理一下:inv[i]-k*inv[p%i](mod p)

    我们还知道k*i+r0(mod p)

    所以k就是p/i,然后我们根据c++里%的特点,再让他强行转正,加一个p

    最后一次整理inv[i]=(p-p/i)*inv[p%i]%p

    然后经过这一波分析,我们得到了公式:inv[i]=(p-p/i)*inv[p%i]%p

    膜拜教会我的大佬,贴上原博客地址

  • 相关阅读:
    Netty相关知识积累
    Java内存管理
    使用nginx-upload-module搭建文件上传服务器
    mysql 5.7自动安装脚本
    CDH5集群搭建
    Linux常用命令
    编译原理要点四
    编译原理要点三
    编译原理要点二:
    编译原理要点
  • 原文地址:https://www.cnblogs.com/lichangjian/p/14480547.html
Copyright © 2011-2022 走看看