硬币翻转问题

题目:

有4枚硬币,初始状态未知。你的眼睛被蒙住,看不到硬币的状态,但可以随便翻任何几个硬币。你每翻一次以后,如果4枚硬币的状态是全正面朝上或者全背面朝上,旁边的人会告诉你翻成功了。现在问你,最少翻几次可以保证成功?每次翻哪几枚?(百度2008年面试题) 

解答:

这个题目的关键是分析翻转前后硬币组合中相同不相同的数目的关系,不必考虑硬币的顺序,因为考虑顺序的话,代价比较大。

方法一:尝试和回退的策略,假设一种可能性,然后尝试,不行回退尝试另一种可能性。

方法二:

1)固定一个硬币,翻转另外三个,如果成功,则结束;

2)如果不成功,那么前翻转的三个硬币有两种可能001或者110,而第4个硬币可能为0或1,则可能的情况是

 a)前三个硬币是两个0,一个1,最后是0,即0010,前三个可以有多种排列情况,我们暂时不管,我们关心的是有几个0和几个1;

 b)前三个硬币是两个0,一个1,最后是1,即0011,前三个可以有多种排列情况,我们暂时不管,我们关心的是有几个0和几个1;

 c)前三个硬币是两个1,一个0,最后是0,即1100,前三个可以有多种排列情况,我们暂时不管,我们关心的是有几个0和几个1࿱

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值