猜牌游戏 【微软面试100题 题二十二题】

题目要求:

  有4张红色的牌和4张蓝色的牌,主持人先拿任意两张,再分别在A、B、C三人额头上帖任意两张牌,A、B、C三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,A说不知道,B说不知道,C说不知道,然后A说知道了。

  请教如何推理,A是怎么知道的。如果用程序,又怎么实现呢?

题目分析:

  假设红用x表示,蓝用y表示,则可能有三种情况:

  1. B    C   可能的A    ===>  B      C      A

   xx    yy  xx/yy/xy       xx      yy     xy

   分析:此种情况的A只能是xy。因为如果A是xx,则C看到BA的头上都是xx,则肯定会说自己是yy;同理如果A是yy。

  2. B    C   可能的A    ===>  B      C      A

 

    xy   xx  xx/xy/yy        xy      xx     xy

    分析:此种情况的A也只能是xy。首先A不能是xx,因为C也是xx;假设A是yy,则最后应该是B说知道自己是xy(参考第一种情况);

  3.B    C   可能的A    ===>  B      C      A

   xy   xy  xx/xy/yy        xy      xy     xy

   分析:此种情况的A也只能是xy。A为xx或yy就是情况2,此时最后说知道了的应该是B或者C,因此此种情况的A也只能是xy。

 

转载于:https://www.cnblogs.com/tractorman/p/4059104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值