【发布时间】:2011-04-15 17:57:54
【问题描述】:
我很确定你们都知道猜数字游戏(这里似乎已经有很多问题了),其中 Alice 想到了一个正整数,而 Bob 试图猜它。爱丽丝的回应是说“你知道了”、“低”、“高”。 Bob 可以做的常用策略是进行二分搜索,在 O(log n) 次猜测中猜测数字,其中 n 是 Alice 正在考虑的数字。
我一直想知道允许爱丽丝撒谎的变种。
假设现在允许 Alice 撒谎的次数是固定的(之前 Alice 和 Bob 都知道),但只有在回答“High”、“Low”时才允许撒谎(即,如果 Bob 猜对了数字,她不得不承认)。
Bob 还能猜出 O(log n) 次猜测中的数字吗?
如果允许 Bob 进行其他查询,例如“到目前为止,您撒了多少次谎?”,那会怎样? (爱丽丝必须如实回答)? O(log n) 查询仍然可能吗?
编辑:如果谎言的数量也被允许为 O(logn) 怎么办,并且额外的查询是:你撒谎的次数是否超过 x 次?爱丽丝被允许对他们撒谎......
为编辑道歉。
【问题讨论】:
-
如果允许的谎言数量——比如 k——是固定的,与 n 无关,Bob 可以简单地问每个问题 2k+1 次,并且会得到 O(log(n))。
-
只要在每个“标准”问题后面加上“你撒谎了多少次”——然后相应地切换答案。结果:提出的问题数量与 Alice 从不撒谎一样。
-
我喜欢它。两个直接的想法(1)如何根据概率映射空间(2)尝试识别或错误答案的方案是什么样的?
-
我不确定我可以提出多少问题。我进行了编辑,使谎言的数量变得不固定,并允许爱丽丝对谎言的数量撒谎……对不起,如果这是题外话(我可以看到一个接近的投票)。
-
@Jim:是的,这很有趣。有点像容错二进制搜索:-)
标签: algorithm