找出会移动的奖品

来源:互联网 发布:首经贸统计学院大数据 编辑:程序博客网 时间:2024/06/10 20:43


问题:

有n个瓶子,有一个奖品,游戏者需要猜出奖品在哪个瓶子中。

有n个黑色的瓶子(以至于游戏中看不到瓶中是否有东西)设从0到n-1编号,一字排开。
每一次如果游戏者猜错了,那么奖品会各以50%的概率移动到左边或者右边的瓶子中。
当奖品位于最左边或者最右边,游戏者猜错时,奖品必然右移或者左移。

请问,游戏者最少需要猜多少次,可以保证猜到奖品位置。

ps:好像是网易游戏面试题,比较有意思。



分析:


乍一看,感觉是无解,根本不可能猜得到。这也是有意思的地方。


先假设8个瓶子,1.2.3.4.5.6.7.8

1)假设奖品在奇数中,比如在3。

先按顺序来点,1点一次,没有就点2号,一真点到最后,即点8次。
点1时,没有,奖品变偶数。点2,没有,奖品变奇数,并且不可能为1.因为要变1,必须通过2,但是2没有。

所以奖品3或3以后的奇数中。现在在点3,若没有奖品则变偶数,且不可能为2,原因一样。


这样按顺序点到最后,肯定能够找到奖品。如果没有找到,就说明假设不成立,奖品最初在偶数位置中。


2)假设奖品在偶数中,比如在4。

那就从2开始点下去,原理同上,肯定能找到,否则假设不成立。


综上,扫描两遍,肯定能找到奖品!

原创粉丝点击