线性求逆元

26 篇文章 0 订阅
25 篇文章 8 订阅

简介

逆元,简单的来说就是 ab1(modp) ,那么b就是a关于p的逆元。
正常的来说用扩展欧几里得来做。复杂度不是线性的。
但是如果所有的i≤p,有一个线性求逆元的方法。
正常的来说

方法

因为 ip ,所以考虑用i来表示p,并要求表示出来的所有数都能用p和i表示。
p=ki+bk=pil=pmodi
那么 ki+b0(modp)
因为要求的是 i1 ,所以需要把 i1 独立起来,所以我们等式两边同时乘以 i1b1
那么式子就可以变成 kb1+i10
然后把可以求得i的逆元的数放到右边去。
i1kb1
然后再把k和b用p来表示。
i1pi(pmodi)1
设数组a[i]表示i的逆元
那么由上面的式子可以知道:
a[i]=pia[pmodi]1
所以 a[i]pia[pmodi]1
把上面的东西优化一下
因为系数带p的在mod p意义下都视为0
a[i]pia[pmodi]1+pa[pmodi]1
所以
a[i](ppi)a[pmodi]1
为了方便记忆,式子可以改为
a[i](ppi)a[ppii]1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值