经典逻辑题:猜牌问题——网上的结论是没问题的
猜牌问题: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, ...
- python 内推_网易有道2017内推编程题 洗牌(python)
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- 有道python网课怎么样-网易有道2017内推编程题 洗牌(python)
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- 魔术师利用一副牌中的13张红桃c语言,魔术师的猜牌术(1) 魔术师利用一副牌中的13张黑桃 - 下载 - 搜珍网...
魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一 起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌 是什么,我大声数数,你们听,不信?你们就看.魔术师将最上 面的那张牌数为1,把它翻过来 ...
- 【LeetCode】第374题——猜数字大小(难度:简单)
[LeetCode]第374题--猜数字大小(难度:简单) 题目描述 解题思路 代码详解 注意点 题目描述 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪 ...
- 魔术师的猜牌术(一维数组) C++程序
魔术师的猜牌术(一维数组) 魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下 .对观众说:我不看牌, 只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看. 魔术师 ...
- C语言趣味问题系列【1】 猜牌术
1. 问题描述 猜牌术 一副牌中有13张黑桃,将这副牌整理好为一叠,牌面朝下. 第一次出牌,翻开最上面的那张牌,翻过来的正好是黑桃A,抽出黑桃A放在这叠牌的最底下成为最后一张. 第二次出牌,按顺序从上 ...
- 算法_数学问题_Question8_猜牌术(java实现)
这篇文章讲述的是算法初级部分的猜牌术问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评指正. 问题描述 魔 ...
- 100个python算法超详细讲解:猜牌术
1.问题描述 魔术师利用一副牌中的13张黑桃,预先将它们排好后叠在一起,并使牌面 朝下.然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大 声数数,你们听,不信你们就看.魔术师将从最上面的 ...
最新文章
- 成功解决ModuleNotFoundError: No module named ‘sklearn.lda‘
- 网格合并之后物体的位置改变了_基于网格映射对自动驾驶环境信息表示方法
- 【GIF动画+完整可运行源代码】C++实现 插入排序——十大经典排序算法之三
- php curl_init不能用,curl_init()函数不起作用
- Python取整(四舍五入、向上取整、向下取整)
- (136)System Verilog覆盖组参数传递实例
- 苹果也“翻车”,服务器大面积宕机三小时
- 2017 部门文化宣贯会议内容
- 如何进入BIOS设置?
- 用741运算放大器搭建RC正弦振荡器:文氏电桥振荡电路
- Java - 注解(Annotation)
- C#多线程之三:解决多线程编程中大并发数等待唤醒的问题
- 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
- offlineimap读取qq邮箱
- 深剖VR,AR和MR三者之间关系
- [RK3288][Android5.1] 移植笔记 --- gsl3673 触控驱动
- 微型计算机48MHz辐射超,造成EMC辐射超标原因有哪些(精彩案例分析)
- 计算机论文初稿,科学网—博士论文初稿完成 - 周涛的博文
- 刘汝佳 语言篇(一)
- 【渝粤教育】广东开放大学 工商企业文化 形成性考核 (55)