对分数取模算法

首先需要一段计算大指数幂并取模的代码:

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;
posted @ 2020-08-06 18:23  不想吃鱼  阅读(1348)  评论(0编辑  收藏  举报