我必须找到值nCr%m,其中0 <0。 r&lt; 10 ^ 6和0 < n&lt; 10 ^ 18和m是素数(为方便起见10 ^ 9 + 7)
我已经阅读了各种文章,如果n <10 ^ 6,我们可以在O(1)时间内找到nCr%m,方法是预先计算从1到n的阶乘和乘法逆。
我的问题: -
现在是否有任何解决方案在O(1)时间内找到nCr%m或者比O(r)更好(如果n <10 ^ 18)(上面的技巧失败,因为我们无法存储因子n对于数组而言太大尺寸)。
我的解决方案: -
我找到了
找到了O(r)解决方案分子 - &gt; n *(n-1)(n-2)...... (n-r)
分母 - →1 * 2 * 3 * 4 * 5 ...... - [R
ANS =分子* multiplicative_inverse(分母)%模