首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python3.8中`math.comb()`的时间复杂度是多少?

Python3.8中`math.comb()`的时间复杂度是多少?
EN

Stack Overflow用户
提问于 2020-03-29 10:30:17
回答 2查看 743关注 0票数 1

https://docs.python.org/3/library/math.html#math.comb

这是一个非常方便的函数,用于解决n选择k问题,而不必从头开始构建。有人知道这种特定方法的时间复杂度吗?是这个问题中描述的O(n choose k)吗?

What's time complexity of this algorithm for finding all combinations?

在实施math.comb()的过程中是否涉及到将时间复杂性降低到低于O(n choose k)的优化

EN

回答 2

Stack Overflow用户

发布于 2020-03-29 10:55:50

我没有一个明确的答案,但math.comb()似乎有点慢:

math.comb()解决一个Pascal三角形problem

代码语言:javascript
运行
复制
from math import comb

def get_row(k):
    row = [None for _ in range(k+1)]
    row[0], row[-1] = 1, 1
    for y in range(1, k):
        row[y] = comb(k, y)
    return row
票数 0
EN

Stack Overflow用户

发布于 2021-08-18 06:35:44

我相信它是2N,如果你看一下nCr的手动代码,你会注意到一个用于factorial(n)的while循环,一个用于factorial (r)的while循环,还有一个用于factorial (n-r)的while循环。

因此,用于计算r和n-r的阶乘的while循环等价于阶乘(n)。

因此,它基本上运行了2N次,但是,如果您修改代码以在单个循环中存储事实(R)和事实(n-r),同时查找事实(N)。那么也许它可以是O(N)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60909495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档