[英]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.