big-o - 我们如何以最简单的方式用 Theta 和 Big Oh 表示法编写 nCr?
问题描述
我们如何以最简单的方式在 Theta 和 Big Oh Notation 中编写nCr ?
例如对于小的 rs,我们有:
nC2 = n * (n-1) / 2 = Θ(n 2 ) = O(n 2 )
nC3 = n * (n-1) * (n-2) / 6 = Θ (n 3 ) = O(n 3 )
对于任意的n和r,我们有:nCr = Θ(n! / (r! * (nr)!))
是否可以用更简单的方式编写nCr?
例如,我们可以写nCr = Θ(n! / max(n,nr)!)或其他任何东西,为什么?
解决方案
如果r
是一个你知道的常数,只需简化nCr
为Θ(n^r)
.
如果r
是您要描述的其他参数,只需编写Θ(nCr)
. 这正是您为图形算法所做的事情,您在其中写入Θ(n*m)
节n
点数和m
边数,即使您可以将其限制在O(n^3)
.
如果r
可以是任何东西并且您无法控制它,请使用最坏的情况r = n/2
并尝试使用斯特林近似来简化它。
推荐阅读
- django - NoReverseMatch 与 slug 变量,适用于硬编码值
- javascript - 如何使用javascript根据项目更改文本颜色?
- python - pynput 似乎无法处理大写锁定键
- python - 如何合并具有多个字符替换的两个字符串列表
- sqlite - 运行以下代码时出现sqlite错误
- vapor - How to read a parameter in a Vapor middleware without consuming it
- sap - 使用 SAP Cloud Platform Integration (SCPI) 将 Hybris 集成到 SAP for Retail
- visual-studio-code - VS 代码“textSeparator.foreground”设置
- javascript - 节点,Express.js。无法获得通过 Chai 测试的 POST 请求
- python - 在带有 sqlalchemy 的嵌套 sqlite3 查询中使用 ROW_NUMBER() 会导致 sqlite3.OperationalError: near "(": 语法错误