繁体   English   中英

模数部门的代码或算法

[英]Code or Algo for Modulo Division

我需要找到Res =(A / B)%P。(P是质数)。

我有Num = A%P,而Den = B%P。

有什么方法可以仅使用Num,Den和P来找到Res?

我碰到了这个:

(a / b) mod p = ((a mod p) * (b^(-1) mod p)) mod p 
i.e. Res = (Num * b ^ (p - 2) % p) % p

现在如何使用Den查找b ^(p-2)%p?

如果可以为我提供C ++ / C代码,我会非常高兴,因为我可以直接在游戏中使用它,否则,请帮我找到一个公式,以便我自己获得Res 。

您可以使用快速求幂得到b ^(p-2)%p的结果。

int qexp (int b, int e) {
    if (e == 0) return 1;
    long long h = qexp(b, e/2); //long long to prevent overflow in next step
    h *= h;
    h %= p;
    if (e % 2 == 0) return h;
    else return (h*b)%p;
}

使用qexp(b, p-2);调用qexp(b, p-2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM