【发布时间】:2016-12-03 10:05:33
【问题描述】:
这是一道 2016 年入学考试题:
我们有 N 个重量不同且未知的球,标签为 1 到 n。我们有一个两盘天平,想用它来成对称重这些球并将它们写在纸上,以便对所有这些球进行分类。 在最坏的情况下,需要多少次称重操作?选择最佳答案。
a) Ceil[ n log2 n ]
b) 楼层[ n log2 n ]
c) n − 1
d) Ceil[ log2 n! ]
根据答题卡,正确答案是:Ceil[ log2 n! ]
我的问题是:这个解决方案是如何实现的(这个算法是如何工作的,有没有伪代码?)?
【问题讨论】:
-
你试过找出正确的答案是什么吗?您给出的解决方案也不是选择之一(尽管我认为是d))。
-
我更正了对不起@Module
-
没有一个可能的答案是正确的:答案 (d) 假设总是有一个算法在
k比较中排序,其中k是满足2^k > n!的最小整数。但还不清楚情况是否如此,OEIS sequence A036604 建议在n=12的情况下需要30比较,而在这种情况下ceil(log2(n!))是29。 -
这个界限实际上是无法实现的。它只是渐近正确,但如果我们谈论渐近,那么 ceil 将是多余的,我们会看到大 O 表示法。
-
@user355834:有一个明显且错误的推理链导致了答案 (d),因此,无论是谁提出问题,似乎 预期 的答案都是 (d )。但无论如何,我认为这并不是最好的答案。特别是,(a)和(b)可能是真实答案的实际上限,而(d)不是。
标签: algorithm sorting data-structures time-complexity decision-tree