猜牌游戏 【微软面试100题 题二十二题】
2014-10-29 11:52
288 查看
题目要求:
有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
分析:[b]此种情况的A也只能是xy。A为xx或yy就是情况2,此时最后说知道了的应该是B或者C,因此此种情况的A也只能是xy。[/b]
有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
分析:[b]此种情况的A也只能是xy。A为xx或yy就是情况2,此时最后说知道了的应该是B或者C,因此此种情况的A也只能是xy。[/b]
相关文章推荐
- 猜牌游戏 【微软面试100题 题二十二题】
- 微软等数据结构与算法面试100题 第十六题
- 横空出世,席卷互联网--评微软等公司数据结构和算法面试100题
- 二叉搜索树与双向链表 【微软面试100题 第一题】
- 微软等公司数据结构+算法面试100题(第1题)
- 链表中倒数第k个结点 【微软面试100题 第十三题】
- 第一个只出现一次的字符 【微软面试100题 第十七题】
- 寻找和为定值的多个数 【微软面试100题 第二十一题】
- 微软面试100题之25题:写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
- 微软面试100题-4.在二元树中找出和为某一值的所有路径
- 二元树中找出何为某一值的所有路径 【微软面试100题 第四题】
- 左旋转字符串 【微软面试100题 第二十六题】
- 设计一个魔方(六面)的程序 【微软面试100题 第四十四题】
- 和为n连续正数序列 【微软面试100题 第五十一题】
- 全新整理:微软、谷歌、百度等公司经典面试100题[第1-60题]
- 字符串的排列 【微软面试100题 第五十三题】
- C++异常安全的赋值运算符重载 【微软面试100题 第五十五题】
- 最长公共子序列 【微软面试100题 第五十六题】
- 从尾到头输出链表 【微软面试100题 第五十八题】
- 【从零单排之微软面试100题系列】07之判断两个链表是否相交