gpt4 book ai didi

algorithm - Big O(2^n) 的这个解释是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:32:16 24 4
gpt4 key购买 nike

我在 Skiena 的算法设计手册中阅读有关大 Oh 符号的内容,并看到了 O(2n) 的以下解释:

Exponential functions: Functions like 2n arise when enumerating all subsets of n items.

就具体示例而言,这意味着什么?

假设我有集合:{1,2,3,4}(因此 n=4),这意味着(根据 Skiena 的定义)子集的数量是 24 即 16 个子集。我想不通这 16 个子集是什么。

2n 关系中的 2 是否意味着每个子集的大小都限制为 2?

编辑:我想我要问的部分原因是,为什么 2n 而不是 3n 例如?这对我来说一点都不直观。

最佳答案

这是 {1, 2, 3, 4} 的所有有效子集的列表:

{}                                           1

{1}, {2}, {3}, {4} + 4

{1,2}, {1,3}, {1,4}, {2,3}, {2,4}, {3,4} + 6

{1,2,3}, {1,2,4}, {1,3,4}, {2,3,4} + 4

{1,2,3,4} + 1

= 16

计数是 2ⁿ 而不是 3ⁿ 的原因是要创建一个子集,您可以想象遍历每个元素并做出决定“是元素子集与否?”。

也就是说,您为每个 n 元素在两种可能性(in 和 out)之间进行选择,因此做出此决定的方法总数(以及子集的总数)是

    2 * 2 * 2 * .... * 2
\________ ________/
\/
n times

这是 2ⁿ

关于algorithm - Big O(2^n) 的这个解释是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com