如何确定随机骰子卷产生的问题的最佳,更差和平均的案例复杂性?

时间:2010-01-23 08:00:11

标签: algorithm analysis

有一本100页的图画书。如果骰子随机滚动以选择其中一个页面并随后重新滚动以搜索书中的某个图片 - 如何确定此问题的最佳,最差和平均情况复杂性?

建议答案:

最佳情况:图片在第一个骰子卷上找到

最坏的情况:在第100张骰子上找到图片或图片不存在

平均情况:在50个骰子卷(= 100/2)之后找到图片

假设:最多一次搜索不正确的图片

4 个答案:

答案 0 :(得分:6)

鉴于你对问题的描述,我不认为你的假设(错误的图片只被“搜索”一次)听起来是正确的。如果你没有做出这个假设,那么答案如下所示。您会看到答案与您的建议有所不同。

  1. 您可能在第一次尝试时获得成功。因此,第一个答案是1。
  2. 如果你运气不好,你可以永远滚动错误的号码。所以第二个答案是无限。
  3. 第三个问题不太明显。
  4. 平均卷数是多少?您需要熟悉Geometric Distribution:获得一次成功所需的试验次数。

    • p 定义为成功试用的概率; P = 0.01。
    • 设Pr( x = k )是第一次成功试验为 k 的概率。然后我们将不得不( k -1)失败并取得一次成功。所以Pr(x = k)=(1- p )^( k -1)* p。验证这是维基页面(左栏)上的“概率质量函数”。
    • 几何分布的平均值为1 / p ,因此为100.这是查找特定图片所需的平均卷数。

    (注意:我们需要将1视为最低可能值,而不是0,因此请使用维基百科页面上表格的左侧列。)

答案 1 :(得分:2)

要分析这一点,请考虑实际上最好,最差和最普通的案例。您需要回答三个问题才能找到这三个案例:

  1. 找到所需页面的卷数最少是多少?
  2. 找到所需页面的最大卷数是多少?
  3. 找到所需页面的平均卷数是多少?
  4. 一旦找到前两个,第三个应该不那么棘手。如果您需要渐近符号而不仅仅是卷数,请考虑如果您更改书中的页数(例如200页对100页对50页),每个问题的答案如何变化。

答案 2 :(得分:2)

最糟糕的情况不是100个骰子卷后找到的页面。那将是你的骰子总是返回不同的数字。最糟糕的情况是你永远找不到页面(你说出问题的方式)。

幸运的是,平均情况不是最佳和最差情况的平均值。

平均情况是:

  1 * (probability of finding page on the first dice roll)
+ 2 * (probability of finding page on the second dice roll)
+ ...

是的,总和是无限的,因为在考虑最坏的情况时,我们确定你可能有任意数量的骰子。这并不意味着它无法计算(它可能意味着,但它不必)。

第一次尝试查找页面的概率为1/100。在第二个骰子上找到它的概率是多少?

答案 3 :(得分:1)

你几乎就在那里,但是(1 + 2 + ... + 100)/ 100不是50。

观察你的随机选择方法相当于随机改组整个牌组,然后搜索它以便你的目标可能会有所帮助。每个位置都具有相同的可能性,因此平均值很容易计算。当然,除了您没有完成所有预先工作之外,还需要生成每个随机数并访问相应的元素。

请注意,如果您的图书被存储为链接列表,那么从每个随机选择的页面移动到下一个选择的成本取决于它们之间的距离,这将使分析复杂化很多。你实际上并没有声明你有持续时间的访问权,而且“真实的书”是否提供了它可能是有争议的。

就此而言,选择随机数而不重复的方法不止一种,并非所有方法都具有相同的运行时间。

因此,您需要更多细节,以便根据“访问的页数”以外的任何方式分析算法。