逆元小性质

定理:
( ∏ i = 1 n a i ) − 1 ≡ ∏ i = 1 n a i − 1 ( m o d p ) {\left(\prod\limits_{i=1}^{n}a_i\right)}^{-1}\equiv \prod\limits_{i=1}^{n}{a_i}^{-1} \pmod{p} (i=1nai)1i=1nai1(modp)
证明:
∏ i = 1 n a i ⋅ ∏ i = 1 n a i − 1 = ∏ i = 1 n a i ⋅ a i − 1 ≡ ∏ i = 1 n 1 = 1 n = 1 ( m o d p ) \prod\limits_{i=1}^{n}a_i\cdot\prod\limits_{i=1}^{n}{a_i}^{-1}= \prod\limits_{i=1}^{n}a_i\cdot {a_i}^{-1}\equiv \prod\limits_{i=1}^{n}1=1^n=1\pmod{p} i=1naii=1nai1=i=1naiai1i=1n1=1n=1(modp)
(以上写法不正规,大致能理解就行)

于是就有定理成立。

应用:

给出 n n n个正整数 a i a_i ai,在线性时间内求出它们各自的乘法逆元。

s i = ∏ j = 1 i a j s_i=\prod\limits_{j=1}^{i}a_j si=j=1iaj,其递推式为 s i = s i − 1 ⋅ a i s_i=s_{i-1}\cdot a_i si=si1ai s 1 = a 1 s_1=a_1 s1=a1

于是有: s i − 1 = ( ∏ j = 1 i a j ) − 1 {s_i}^{-1}={\left(\prod\limits_{j=1}^{i}a_j\right)}^{-1} si1=(j=1iaj)1 s i − 1 − 1 = ( ∏ j = 1 i − 1 a j ) − 1 ≡ ∏ j = 1 i − 1 a j − 1 ≡ a i ∏ j = 1 i a j − 1 ≡ a i ( ∏ j = 1 i a j ) − 1 = a i ⋅ s i − 1 ( m o d p ) {s_{i-1}}^{-1}={\left(\prod\limits_{j=1}^{i-1}a_j\right)}^{-1}\equiv\prod\limits_{j=1}^{i-1}{a_j}^{-1}\equiv a_i\prod\limits_{j=1}^{i}{a_j}^{-1}\equiv a_i{\left(\prod\limits_{j=1}^{i}a_j\right)}^{-1}=a_i\cdot{s_i}^{-1} \pmod{p} si11=(j=1i1aj)1j=1i1aj1aij=1iaj1ai(j=1iaj)1=aisi1(modp)

(以上写法不正规,大概能理解就行)

也即: s i − 1 − 1 ≡ a i ⋅ s i − 1 ( m o d p ) {s_{i-1}}^{-1}\equiv a_i\cdot {s_i}^{-1} \pmod{p} si11aisi1(modp)

两边同时乘以 a i − 1 ⋅ s i − 1 {a_i}^{-1}\cdot s_{i-1} ai1si1,得到 a i − 1 ≡ s i − 1 ⋅ s i − 1 ( m o d p ) {a_i}^{-1}\equiv s_{i-1}\cdot{s_i}^{-1}\pmod{p} ai1si1si1(modp)

由于 s i s_i si是线性递推的,可以先求出 s n − 1 {s_n}^{-1} sn1,再倒回来递推出所有的 a i − 1 {a_i}^{-1} ai1 s i − 1 {s_i}^{-1} si1,即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值