在 Python 中以一种有效的方式在 0 到 n 范围内查找 r 的 nCr 值的程序

假设我们必须多次计算 nCr 值。我们可以通过这种非常有效的方式来解决。如果我们存储较低的 nCr 值,我们可以轻松找到较高的值。所以如果我们有 n,我们必须找到 nC0 到 nCn 的列表。如果答案太大,则返回该模 10^9。

因此,如果输入类似于 n = 6,那么输出将是 [1, 6, 15, 20, 15, 6, 1]。

示例

让我们看看以下实现以获得更好的理解 -

def solve(n):
   items = [1]
   for r in range(1,n+1):
      items.append(items[-1]*(n-r+1)//r)
      items[-2] %= 10**9
   return items

n = 6
print(solve(n))

输入

6
输出结果
[1, 6, 15, 20, 15, 6, 1]

猜你喜欢