使用排序算法

时间:2013-02-21 13:32:49

标签: algorithm sorting

考虑数字20问题游戏。在该游戏中,玩家1想到1到n范围内的数字。玩家2必须通过询问最少数量的真/假问题来计算出这个数字。假设没有人作弊。 一世。如果n已知,那么什么是最优策略? II。什么是好的策略是n不知道?

1 个答案:

答案 0 :(得分:7)

请参阅此维基:binary search for number guessing game

如果已知n,请使用二进制搜索算法查找,因此提出的问题不超过floor(log2(n))

如果n未知,您可以先通过重复加倍找到上限,然后应用二进制搜索。很明显,被问到的问题不超过2 * floor(log2(k)) + 1,其中k是未知的选定数字。