【问题标题】:Big-o complexity problem - Linear cumulative powerBig-o 复杂性问题 - 线性累积功率
【发布时间】:2020-06-01 23:37:35
【问题描述】:

背景

我正在尝试解决我在 2013 年斯坦福大学“算法设计与分析”课程中发现的一些问题。特别是问题集 1 here 中的问题 3。

总结如下:

  • 您被困在荒岛上,无线电可以以整数功率水平(即 1W、2W、3W 等)发送求救信号。
  • 如果您以足够高的功率发射信号,您将收到响应并获救。
  • 很遗憾,您不知道需要多少功率,n

问题要求你设计一个使用 Θ(n)W 总功率的算法。

作为问题集 1 中的一个 5 分问题,我认为这比我找到的要容易。

我的问题是

...这个算法是什么?....或者我怎样才能改变我的想法来找到一个?

我被困在哪里

问题指出,“每次仅将功率增加 1 瓦”的策略将导致总功率为 Θ(n^2)W。事实上,这是真的,因为任何 n 使用的总功率是 n * (n+1) / 2

但是,我想不出任何不是这样的策略:

  • 大于线性;或
  • 一种我通过“连续几个 n 不做任何事情”来作弊的策略。

此外,如果我暂时忽略无线电的离散性并将问题分析为连续线性函数,则总功率应该可以推广到 @ 形式的函数 g(n) 987654324@(其中 K 和 B 是常数)。这个线性函数将表示我们需要用于控制无线电的函数的积分。

然后,如果我取这个函数的导数 dg(n)/dn,我就剩下 K。即如果我想获得线性总功率,我应该以恒定功率驱动收音机 n 次……但这只有在我第一次碰巧猜对 K 时才会导致救援.

编辑

是的,我已经考虑过加倍等......但是这里的答案指出了我的想法错误。我一直在尝试解决“设计一种具有线性累积功耗的算法”的问题……我认为这是不可能的。正如答案所指出的那样,我应该将其视为“对于给定的 n,设计一个将消耗 Kn 的算法”......即提出了什么问题。

【问题讨论】:

  • 假设所需瓦特为100,尝试从1开始,双倍输入直到成功。并将结果与​​每次添加一个进行比较。见this
  • 提示:用你的函数方法,你正在寻找一个函数 f 与 ∫ f(n) dn = K·f(n)。这应该不会太难。

标签: algorithm big-o complexity-theory


【解决方案1】:

我已经阅读了作业... 它表明无线电能够以整数传输,但这并不意味着您应该逐个尝试并遍历所有整数,直到n

好吧,我可以给你答案,但我会试着引导你自己思考:

请注意,您需要发送的信号或大于大于n,因此您无法“走远”。现在,有了复杂性的概念,如果你检查所有信号,你会得到一系列 (1+2+3+...+n) 等于Θ(n^2),试着想一个你想要的模式可以跳过其中的一些并获得一个总和为Θ(n) 的系列。

这个任务类似于搜索算法,天真地用于Θ(n^2),但有些算法减少到更少 - 你应该去探索它们是如何工作的:)

如果你想要一个答案的方法:

您可以从 1W 开始,每一步将其加倍以进行下一次传输。这样,您将进行log(n) 尝试,并且每次尝试都会花费i 其中i 是该尝试的力量。所以累积功率将是这样的:(1+2+4+8+16+...+n) 等于2n-1 并且符合Θ(n) 的要求

【讨论】:

  • 这不是问题的答案,如果您认为它增加了任何价值,应该是评论。
【解决方案2】:

这里有一个简单的算法和复杂度分析:

  • 最初尝试使用power=1W
  • 如果没有收到,请尝试使用power=2*previous_power,直到收到为止

复杂性:

所以基本上我们在电源p>= n 时停止,其中 n 是所需的阈值。 我们知道:

p>=n and p/2<n => n<=p<2n

为了达到pW(即接收所需的级别),这意味着您之前尝试使用 p/2,在该 p/4 之前...并且最初使用 1,所以让我们总结一下所有步骤:

1+2+4+...+p/2+p -> 2*p ~ Θ(p) = Θ(n)

【讨论】:

  • 证明并不正确。你在 n' 处结束,这是大于或等于 n 的 2 的最小幂,和是 2n'-1,夹在 n 和 4n 之间,Theta(n) 也是如此。
  • 那么你的意思是它是 Theta(n) 但并不完全返回所需的 n 而是更大的值??
  • 我是说你的结论是正确的,但你的证明更多的是非正式的论证,而不是严格的论证。但是,是的,最终的功率水平通常大于 n(并且总是小于 2n)。
  • @PaulHankin,更新答案更清楚了,看看!!
猜你喜欢
  • 2011-02-28
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
相关资源
最近更新 更多