除了最后一步过于理想化之外,前面的分析都是做这道题目的关键。最后一步的问题在于似乎把这个题目看成了一个静态的问题,而事实上在Bob寻找最佳的猜数策略的同时,Alice也在试图找最佳的撒谎策略,使得Bob需要猜的次数尽量多。按照这个式子,当n足够大的时候撒谎和不撒谎需要的次数一样多,显然是不可能的。
要解这个问题首先要考虑的是如何表示一个状态。你上面的集合和图表的表示方式已经切中了要害。不过这里有很重要的一点:我们不应该考虑Alice猜的那个数,转而应该考虑她没猜的那些数。每一步Alice告诉我们的信息其实是“我没猜集合S中的数”。那么我们在S中的每个数上画一个叉。一旦一个数得到了两个叉,我们就确定它不是Alice猜的数了。而Bob可以确定Alice的数当且仅当其它的数都得到了两个叉或以上。
所以一个合适的状态就是:当前多少个数得到了一个叉,多少个数零个叉(剩下的数都已经被排除,可以不做考虑)。
很好的分析
所有跟帖:
• 回复:很好的分析 -HF:- ♀ (745 bytes) () 06/12/2008 postreply 12:16:22
• brilliant answer... however that question is not allowed -dynamic- ♂ (154 bytes) () 06/12/2008 postreply 13:08:34
• 回复:brilliant answer... however that question is not allowed -HF:- ♀ (475 bytes) () 06/12/2008 postreply 13:24:54
• Does this mean that 9 guesses is enough? -ettubrute- ♂ (136 bytes) () 06/12/2008 postreply 13:07:32
• why do you think so? -dynamic- ♂ (348 bytes) () 06/12/2008 postreply 13:13:20
• I just realize my mistake -ettubrute- ♂ (0 bytes) () 06/12/2008 postreply 13:17:03
• 回复:很好的分析 -HF:- ♀ (461 bytes) () 06/12/2008 postreply 14:15:52
• for N=100, 10 questions to ask -HF:- ♀ (834 bytes) () 06/12/2008 postreply 20:13:24
• I think that there is a mistake at the eighth guess -ettubrute- ♂ (284 bytes) () 06/12/2008 postreply 20:36:40