猜牌问题:S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:

  • 红桃A、Q、4
  • 黑桃J、8、4、2、7、3
  • 草花K、Q、5、4、6
  • 方块A、5

约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?于是,S先生听到如下的对话:

  • P先生:我不知道这张牌。
  • Q先生:我知道你不知道这张牌。
  • P先生:现在我知道这张牌了。
  • Q先生:我也知道了。

听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。

思路

根据第一句,点数必须有多种花色,这样点数只可能是AQ45:红桃AQ4,黑桃4,草花Q54,方块A5。这个信息Q在P说话以前已经知道,我们旁观者则只能在看到此句以后知道。

根据第二句,所求花色必须满足所有的点数都有重复(否则Q不能在P说话之前就推出P无法知道花色。),于是花色可以是红桃或方块,这个信息也被P掌握了。

然后第三句的意思是P根据

  • 已知点数
  • 花色只能是红桃或方块

这两个信息确定了答案,这意味着点数不是A,可能是Q、4或5。这个信息也被Q掌握了。

然后第四句。现在Q已经知道点数可能是Q、4、5,花色可能是红桃或方块。假如花色是红桃,那么Q应该仍然无法确定点数,则无法知道答案。

所以点数只能是5,同时得出花色是方块。

总结

网上给出的答案一般不会错,至于解析过程就不一定了,最容易忽略的是加粗的那句。因此我给出了我认为正确的解释。这个题我第一次见是在10年前了,当时看题解看不懂,现在回过头来,其实只是因为对排除法的掌握不够透彻而已……

经典逻辑题:猜牌问题——网上的结论是没问题的相关推荐

  1. 【刷题记录】【一维数组】魔术师的猜牌术。

    魔术师的猜牌术.魔术师利用一副牌中的十三张黑桃,预先将它们排好后迭在一起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们看看.魔术师将最上面的那张牌数为1, ...

  2. python 内推_网易有道2017内推编程题 洗牌(python)

    本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...

  3. 有道python网课怎么样-网易有道2017内推编程题 洗牌(python)

    本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...

  4. 魔术师利用一副牌中的13张红桃c语言,魔术师的猜牌术(1) 魔术师利用一副牌中的13张黑桃 - 下载 - 搜珍网...

    魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一 起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌 是什么,我大声数数,你们听,不信?你们就看.魔术师将最上 面的那张牌数为1,把它翻过来 ...

  5. 【LeetCode】第374题——猜数字大小(难度:简单)

    [LeetCode]第374题--猜数字大小(难度:简单) 题目描述 解题思路 代码详解 注意点 题目描述 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪 ...

  6. 魔术师的猜牌术(一维数组) C++程序

     魔术师的猜牌术(一维数组) 魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下 .对观众说:我不看牌, 只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看. 魔术师 ...

  7. C语言趣味问题系列【1】 猜牌术

    1. 问题描述 猜牌术 一副牌中有13张黑桃,将这副牌整理好为一叠,牌面朝下. 第一次出牌,翻开最上面的那张牌,翻过来的正好是黑桃A,抽出黑桃A放在这叠牌的最底下成为最后一张. 第二次出牌,按顺序从上 ...

  8. 算法_数学问题_Question8_猜牌术(java实现)

    这篇文章讲述的是算法初级部分的猜牌术问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评指正. 问题描述 魔 ...

  9. 100个python算法超详细讲解:猜牌术

    1.问题描述 魔术师利用一副牌中的13张黑桃,预先将它们排好后叠在一起,并使牌面 朝下.然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大 声数数,你们听,不信你们就看.魔术师将从最上面的 ...

最新文章

  1. 成功解决ModuleNotFoundError: No module named ‘sklearn.lda‘
  2. 网格合并之后物体的位置改变了_基于网格映射对自动驾驶环境信息表示方法
  3. 【GIF动画+完整可运行源代码】C++实现 插入排序——十大经典排序算法之三
  4. php curl_init不能用,curl_init()函数不起作用
  5. Python取整(四舍五入、向上取整、向下取整)
  6. (136)System Verilog覆盖组参数传递实例
  7. 苹果也“翻车”,服务器大面积宕机三小时
  8. 2017 部门文化宣贯会议内容
  9. 如何进入BIOS设置?
  10. 用741运算放大器搭建RC正弦振荡器:文氏电桥振荡电路
  11. Java - 注解(Annotation)
  12. C#多线程之三:解决多线程编程中大并发数等待唤醒的问题
  13. 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
  14. offlineimap读取qq邮箱
  15. 深剖VR,AR和MR三者之间关系
  16. [RK3288][Android5.1] 移植笔记 --- gsl3673 触控驱动
  17. 微型计算机48MHz辐射超,造成EMC辐射超标原因有哪些(精彩案例分析)
  18. 计算机论文初稿,科学网—博士论文初稿完成 - 周涛的博文
  19. 刘汝佳 语言篇(一)
  20. 【渝粤教育】广东开放大学 工商企业文化 形成性考核 (55)

热门文章

  1. MetaTrader 4 电脑版安装指南
  2. 知识表示学习(KG Embedding)—— TransX系列
  3. C++转Java个人银行账户管理程序
  4. C++ __builtin_函数
  5. 源码阅读工具 UnderStand
  6. RTX 3090 Ti和RX 6950 XT参数对比
  7. 分析IE浏览器不能上网的原因
  8. 锁子甲 bulid+sim
  9. Isaac SDK Sim 环境
  10. 【安全】靶场实战-通过MS16-032提权