线性求逆元

    xiaoxiao2026-01-13  0

    简介

    逆元,简单的来说就是 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

    转载请注明原文地址: https://ju.6miu.com/read-1305946.html
    最新回复(0)