
逆元
2
hesorchen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线性递推阶乘逆元
在求组合数时,我们需要用到公式(n)!(n−m)!⋅(m)!\frac{(n)!}{(n-m)!·(m)!}(n−m)!⋅(m)!(n)!,其中阶乘可以OnOnOn的递推预处理,除法取模需要用到逆元,逆元又可以用费马小定理和exgcdexgcdexgcd求,不过两者的时间复杂度都是OlognOlognOlogn,事实上,我们可以先求出最后一个阶乘的逆元,再根据公式inv(n!)=inv((n+1)!×(n+1))inv(n!)=inv((n+1)!\times (n+1))inv(n!)=inv((n+1原创 2020-12-31 09:27:30 · 4351 阅读 · 0 评论 -
扩展欧几里得算法求逆元
扩展欧几里得算法应该是最优的求逆元算法之一,他和费马小定理具有同样的时间复杂度O(log(n))O(log(n))O(log(n)),但是费马小定理需要模数为质数,扩展欧几里得算法则不需要。逆元定义若aaa与ppp互素,则满足(a×x)modp=1(a\times x) mod p=1(a×x)modp=1的xxx为aaa的逆元。显然,有(k×p+1)modp=1(k\times p+1) mod p=1(k×p+1)modp=1(kkk为任意常数),又因为(a×x)modp=1(a\times x)原创 2020-07-03 20:57:52 · 14876 阅读 · 0 评论 -
逆元
常用的求逆元的方法有扩展欧几里得和费马小定理, 因为扩展欧几里得我还不会, 这里介绍一下费马小定理。 逆元的定义有正整数aaa和质数ppp,满足ax%p=1ax\%p=1ax%p=1的最小正整数xxx就称为是aaa的逆元逆元的作用为什么要用到逆元呢?在加、减、乘法中,都有如下等式:(a+b)%p=(a%p+b%p)%p(a+b)\%p=(a\%p+b\%p)\%p(a+b)%p=(a%p+b%p)%p(a−b)%p=(a%p−b%p)%p(a-b)\%p=(a\%p-b\%p)\%p(a−b)原创 2020-06-26 13:41:01 · 4515 阅读 · 0 评论