面试题:猜牌问题
来源:互联网 发布:bloom filter java 编辑:程序博客网 时间:2024/04/28 18:06
题目:有4 张红色的牌和4 张蓝色的牌,主持人先拿任意两张,再分别在A、B、C 三人额头上贴任意两张牌,A、B、C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,A 说不知道,B 说不知道,C 说不知道,然后A 说知道了。
请教如何推理,A 是怎么知道的。如果用程序,又怎么实现呢?
解答:这种题目重在分析的时候要头脑清醒,分类清楚。根据题目意思可知一个人额头上的贴牌只有三种情况:BB,RR,BR(B表示蓝色,R表示红色)。分为以下几种情况讨论:
1.B,C全是一种颜色,即:
B C
BB BB
或者
B C
RR RR
这是不可能的,因为如果是这种情况,那么A可以在一开始就猜出自己是RR或者BB(只剩下B颜色或者只剩下R颜色)
2.B,C是一对相反的颜色,即:
B C
BB RR
或者
B C
RR BB
此时A也不可能为BB或者RR,因为如果是这样的话,那么和1同样的理由,B或者C在一开始就可以猜出来,而不会说自己不知道。所以此时A为BR。
3.B,C之中有一个为BR,另一个为BB或者RR,即:
B C
BR RR
或者
B C
BR BB
或者
B C
BB BR
或者
B C
RR BR
此时A为BB/BR,RR/BR,RR/BR,BB/RR分别对应上面四种小情况。以B为BR,C为RR,A为BB/BR为例,假如A为BB,那么类似于2中的情况,当A和C说完自己不知道后,B此时肯定能判断出自己就是BR,而不是A说出来,所以此时这种情况要排除,A只能为BR。
3.B,C都为BR,另一个为BB或者RR,即:
B C
BR BR
此时A有三种可能BB/RR/BR,如果A = BB,此时C听到A和B说不知道,那么他会想,假如自己是BB或者RR,那么B看到的情况就类似于前面所述的1或者2。那么B必然可以判断出自己的颜色,而不会说自己不知道。所以C此时是知道自己是BR的,不会说不知道,所以A不能为BB,同理,A也不能为RR,所以A为BR。- 面试题:猜牌问题
- 面试题:赛马问题
- 面试题:赛马问题
- 面试题:赛马问题
- 面试题:砝码问题
- 面试题:赛马问题
- 面试题 赛马问题
- 面试题:赛马问题
- 面试题之苹果问题
- 微软面试题---阶乘问题
- 微软面试题-过桥问题
- 面试题:男女映射问题
- JAVA面试题的问题
- 面试题-整数连接问题
- 计算机网络面试题问题集锦
- 面试题整理-台阶问题
- #面试题# 括号匹配问题
- 一道面试题:赛马问题
- Git分支详解
- 八叉树 判断长立方体是否在物体内
- WEB.CONFIG
- Rose2003 Win8
- service的生命周期和两种开启方法.
- 面试题:猜牌问题
- 华攀教你在关键词排名稳定后我们要做什么?
- IOS使用Reachability实时检测网络连接状况
- 【myeclipse】myeclipse中如何导入mysql-connector-java-5.1.8-bin.jar包
- 用CodeViz绘制函数调用关系图(call graph)
- 5招熬夜看球赛防病降火
- 改变UIImage的透明度
- android api分析02
- 且看且学Gradle--(2)gradle.bat解析