用 Python 编写程序,以高效的方式在 0 到 n 范围内查找 r 的 nCr 值
pythonserver side programmingprogramming更新于 2026/1/31 14:36:17
假设我们必须多次计算 nCr 值。我们可以用这种非常高效的方式解决。如果我们存储 nCr 的较低值,我们可以轻松找到较高的值。因此,如果我们有 n,我们必须找到 nC0 到 nCn 的列表。如果答案太大,则返回模 10^9 的结果。
因此,如果输入为 n = 6,则输出为 [1, 6, 15, 20, 15, 6, 1]。
为了解决这个问题,我们将遵循以下步骤 −
- items := 一个包含单个元素 1 的列表
- 对于 r 在 1 到 n 范围内,执行
- 在 items 末尾插入 (items 的最后一个元素 * (n-r+1) /r) 的下限
- items[n-2] := items[n-2] mod 10^9,其中 n 是 items 的大小
- 返回 items
示例
让我们看看下面的实现以便更好地理解 −
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]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

