找到可以具有巨大的n和k值的nCk

时间:2012-08-01 21:24:08

标签: algorithm modulus

首先,这不是我的作业..我在练习期间遇到了一个问题。

我想计算这个表达式的值: ANS =(2 ^巨大)%P ..

其中:

huge = n1Ck1 + n2Ck2 + n3Ck3 ..... [n1,n2 ..可以大到10 ^ 4且k1,k2 ..小于10]

p =小于2 ^ 32的素数

我知道如何使用快速right to left binary method找出(a ^ b)%p,但我的问题是如何找到像10000C9这样的数字的组合[nCk],这可能导致如此庞大的数字和然后在模幂运算方法中使用它?

1 个答案:

答案 0 :(得分:4)

由于2^(p-1)==1 mod p,您可以对模数为p-1的指数进行所有计算。