对分数取模算法
首先需要一段计算大指数幂并取模的代码:
const long long P = 1e9 + 7;
long long Pow(long long x, long long k)//大指数幂取模运算,x为底数,k为指数,计算x^K对P取模的值
{
long long ret = 1;
for (; k; k >>= 1, x = x * x % P) if (k & 1) ret = ret * x % P;
return ret;
}
可以知道:
(A / B) % P == (A * B ^ (-1)) % P == ((A % P) * ( B ^ (-1) % P)) % P;
而:
B ^ (-1) % P == B ^ (P - 2) % P == Pow(B,P - 2);
故:
(A / B) % P == ((A % P) * Pow(B,P - 2)) % P;