当没有模块化乘法反转时,模块化除法

时间:2014-05-30 16:42:18

标签: c++ algorithm modular-arithmetic

我正试图解决这个等式:

(binomial(n - 3, k, p) * binomial(n + k, n - 1, p) / (n + k)) % 1000003

我目前的解决方案:

int a, b, r;
a = BinomialModPrime(n - 3, k, P);
b = BinomialModPrime(n + k, n - 1, P);
r = ModularMultiply(a, b, P);
r = ModularMultiply(r, ModularInverse(n + k, P), P);

工作正常,直到我遇到问题集,其中没有任何模块化逆(n + k),因为

(n + k) % 1000003 == 0.

所以我的问题是,有没有另一种解决方法,不涉及模块化逆的乘法?例如,these任何建议都可以解决我的问题吗?

0 个答案:

没有答案