gpt4 book ai didi

java - 反模问题 where gcd(denominator,mod)!=1

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:09 26 4
gpt4 key购买 nike

如何计算 F(n)%mod 其中 mod 是质数。和 F(n)=n!/(q!^r)%mod....(x^r 代表 pow(x,r) )。

我正在尝试使用费马小定理来计算逆模,但我面临的问题是费马仅在 gcd(denominator,mod)=1 时适用。

那么有没有其他方法可以解决这个问题。

最佳答案

如果模数是质数,您可以使用扩展欧几里得算法计算逆数:

function inverse(x, m)
a, b, u = 0, m, 1
while x > 0
q = b // x # integer division
x, a, b, u = b % x, u, x, a - q * u
if b == 1 return a % m
error "must be coprime"

如果模数是复合的,只要 xm 互质,该算法仍然有效。如果它们共享一个因子,则逆因子不存在。

关于java - 反模问题 where gcd(denominator,mod)!=1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26876634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com