小编Rav*_*a N的帖子

找到二项式协同有效模数,采访街道挑战

我已经做了很多工作,但无法找到更大的测试用例的答案

问题陈述

在数学中,二项式系数是正整数族,在二项式定理中作为系数出现.C(n,k)表示从n个不同对象中选择k个对象的方式的数量.

然而,当n和k太大时,我们经常在模数运算后用素数P保存它们.请计算在P模数后n的二项式系数变为0的数量.

输入

输入的第一个是整数T,即测试用例的数量.

以下T行中的每一行包含2个整数,n和素数P.

产量

对于每个测试用例,输出一行包含\ tbinom nks的数量(0 <= k <= n),其中每个模数运算后的P为0.

样本输入

3
2 2
3 2
4 3
Run Code Online (Sandbox Code Playgroud)

样本输出

1
0
1
Run Code Online (Sandbox Code Playgroud)

约束:

  • T小于100
  • n小于10 ^ 500.
  • P小于10 ^ 9.

有针对性的解决方案

我已经通过在二项式系数中使用余数定理完成了这个

         #C(n,m) mod p
         #n=l*p+t
         #m=m*p+s
         #then C(n,r) mod p=0 when (t<s or t=0)

         inp1 = raw_input()
         N=int(inp1)
         result=[]
         for i in range(N):
            inp = raw_input()
            a, b = [long(x) for x in inp.split(' ')]
           j=0
           #n=lp+t
           t=a%b
           t=t+1
           l=a/b
           j=l*(b-t)
           result.append(j)
        for i …
Run Code Online (Sandbox Code Playgroud)

python algorithm primes largenumber binomial-coefficients

4
推荐指数
2
解决办法
2948
查看次数