最近和朋友讨论一个逻辑问题,据说也是个以前出现过的面试题了。拿出来和大家分享。
问题如下:
你来到两道门口,一道是天堂之门, 一道是地狱之门 。
门口都有一个守卫,只知道守卫一个只说假话,一个只说真话。
现在你只有一次提问机会,只向一个守卫问一个问题,这个守卫对你的问题,只给出“是”或者”不是“的答案。(对于无法给出是非的问题,守卫会直接把你砍死。。。)
请问怎么问才能准确进入天堂之门?
我们将守卫守门的所有情况列成如下的一个矩阵:
守卫分两种情况,第一行代表天堂守卫是诚实的情况,第二行分为天堂守卫为说谎话的情况。
而每种情况你都有2个可能,要么问到真话守卫,要么问到假话守卫。因此问题的解空间是一个2*2的矩阵。

这个问题难在,不管你问“你是说真话的吗?”还是问“你守卫的门是天堂的吗?”,都无法得到满意信息。

如下图,如果你问“你守卫的门是天堂的吗?”,所有的情况如下图所示:
红色的勾表示如果你问这个守卫(勾连接的那个画圈的守卫)问题,他会说“是”。”叉“表示说”否“。
看到这个图你就明白为什么问不出答案了。因为无论是上下哪种情况,天堂的守卫既有可能说”是“,也有可能说”不是“。

解法1:通过解空间反求问题x

我们的目的是找出天堂之门。也就是说,需要设计一个问题,将解空间按照天堂和地狱来进行分离
也就是说,我们需要设计一个问题,将解空间分解为如下情况:
这样解空间按照天堂和地狱分开了。只要回答是”是“,该守卫就是天堂守卫。反之就是地狱守卫。
如何寻找这样的问题呢?
容易知道,为得到天堂地狱相关的信息,我们问的问题一定是描述当前守卫守门状况的一个描述。(例如你问1+1=2吗,真话守卫说是,假话守卫说否,这样只能区分出守卫真假,但是无法区分天堂和地狱)
如果我们把这个状态当做函数的输入x,守卫对该问题的回答的解空间当做y,那么这个函数可以写作:
Y = f(X)
由于y和x是2*2的矩阵。那么可把上式写成:
那么f函数执行的是什么操作呢?
我们知道,x表示的是一个描述在四种守卫情况中的真值表,真值表是客观存在的,所以一定是为真的。真话守卫不会修改这个真值,而谎话守卫一定会给出相反结果。那么,这个f可以表示为:
由于f只做了反转操作,显然f操作是可逆的。
要让天堂守卫都说”是“,地狱守卫都说”否“,就是说y应该是:y1=y3=1, y2=y4=0。
既然我们已经知道我们需要什么样的y了。因此,已知y反求x,如下:
这个x就是我们可以拿出来问守卫的问题。
还记得我们对矩阵的定义吗?
因此,把上面的x代入该矩阵定义,得到如下的守卫状态
守天堂的是真话守卫;    守地狱的是假话守卫;
守天堂的不是假话守卫;守地狱的不是真话守卫;
这实际上是一个状态的四个等价描述的。因此,这个状态就是满足输出y的问题x。
因此,只要向任意一个守卫问上面的任意一个问题即可。只要回答是”是“,该守卫就是天堂守卫。反之就是地狱守卫。

解法2:构造高阶逻辑表达式

假设说真话的守卫对问题的回答为f=T(x),假话的为f=F(x),那么有:
T(0) = 0, T(1) = 1;
F(0) = 1, F(1) = 0;
注意到:
T(F(0)) = 1; T(F(1))=0;
F(T(0)) = 1; F(T(1))=0;
这说明通过一个问题x经过F和T的两次加工,最后的答案是一样的也即
T(F(x)) = F(T(x)) = !x
因此,我们可以构造如下问题:
另外那个守卫会告诉我你是天堂守卫吗?
得到的回答一定和”你是天堂守卫“相反。也就是说,他说”是“,那他就是地狱守卫;他说不是,那他就是天堂守卫。

一个逻辑问题的分析:“天堂与地狱的守卫”相关推荐

  1. 在天堂与地狱之间——清华浪子梦断中关村 (转)

    如果你三十岁左右,你多半玩过我的游戏--<古墓丽影>: 如果你将近三十岁,你可能用过我的产品--大白鲨: 如果你是个时髦的女士,那么你该听说过我的"电子狗"--探测狗: ...

  2. 在天堂与地狱之间——清华浪子梦断中关村[推荐]

    在天堂与地狱之间--清华浪子梦断中关村[推荐] 在天堂与地狱之间--清华浪子梦断中关村[推荐] 世界经理人论坛(http://bbs.icxo.com)版权所有,转贴请注明出处. 如果你三十岁左右,你 ...

  3. 在天堂与地狱之间——清华浪子梦断中关村

    在天堂与地狱之间--清华浪子梦断中关村 作者:TTai  2004-2-5 10:13:12 出处:博客中国(Blogchina.com)      原始出处: 赛迪网 如果你三十岁左右,你多半玩过我 ...

  4. [转] 在天堂与地狱之间——清华浪子梦断中关村

    如果你三十岁左右,你多半玩过我的游戏--<古墓丽影>: 如果你将近三十岁,你可能用过我的产品--大白鲨: 如果你是个时髦的女士,那么你该听说过我的"电子狗"--探测狗: ...

  5. 聚美优品店庆nbsp;从天堂到地狱

    2019独角兽企业重金招聘Python工程师标准>>> 编者按:今天上班,无意中看到好123导航网站上的"聚美优品"那几个字加上了"热"的标签 ...

  6. 天堂还是地狱!美国大学不是你想象的那样!道翰天琼认知智能API接口平台为您揭秘。

    我们都知道,美国高等学府对于同学们的政策被形容作"宽进严出"(虽然"宽"就已经非常"严"),即拿到了学校的offer.顺利入读了心仪的院校并 ...

  7. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  8. 基于SSH2做一个24小时订单分析表格

    基于SSH2做一个24小时订单分析表格 以下为要实现的最终效果截图: ps:没有时间优化前段页面样式,对前段美化有要求的小伙伴可以自行引用BOOtStrap.esayUi 或者 layUi 自行优化. ...

  9. 五年后的深圳是天堂还是地狱?

    "深圳的人口密度是广州的3倍.北京的4倍.全国的40倍"!人多.地少.房价贵恐怕是今年最能代表深圳的关键词了.而最新数据显示,深圳已经难觅3万/平以下的新房,二手房也直奔4万/平, ...

  10. 珍惜在天堂和地狱溜达的每一天

    佛陀说: "天堂和地狱不在世界以外,天堂和地狱就在于我们自己的这个六尺之躯里." 我们认为世界是天堂或地狱?       世界就呈现出我们所认为的样子.       我们是自己的天 ...

最新文章

  1. 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)
  2. sqlservice对于时间的操作
  3. OpenCV图像腐蚀函数erode()的使用
  4. 如何编写java请求_如何避免将Java请求从Java Web服务器发送到自身?
  5. Apache在windows的设置
  6. Idea中搭建Resin运行环境(Mac)
  7. maven POM总结
  8. HDU-2570-迷瘴
  9. 刚刚提取了金山毒霸的[垃圾清理] 和 [隐私清理], 分享方法,大家可以自己试一下
  10. RxBus 使用及原理分析
  11. ai面试的优缺点_被AI程序面试是一种怎样的体验?该如何准备!!!
  12. 有管网气体消防系统小知识来啦
  13. 基于linux的mplay的mp3程序,基于Linux下的开源wavplay播放器
  14. 谷歌广告联盟(Google Adsense)通过网站获利功能在线创收
  15. 计算机所有以太网适配的ip,Win10电脑以太网没有有效的ip配置怎么解决?附上具体解决方法...
  16. PHP套件的实验结果分析,PHP环境搭建套件评比测 | Wopus
  17. (转载)年终总结 算法数据的思考 结尾彩蛋
  18. 如何搞定不懂IT的领导
  19. 搭建FTP报错:Job for vsftpd.service failed because the control process exited with error code. See
  20. Vue关于天地图的使用 自定义标注、自定义折线工具、自定义多边形工具

热门文章

  1. Cousera - Deep Learning - 课程笔记 - Week 6
  2. python opencv 实现图像白平衡
  3. 实时股票行情接口api有哪些?
  4. [LeetCode]347. 前 K 个高频元素
  5. JZOJ4722. 跳楼机
  6. html中边距属性,CSS边距属性
  7. python古诗词风格分析_鉴赏古诗词语言风格
  8. 技嘉主板前置面板没有声音的解决
  9. python实现匿名发邮件_Python写自动化之邮件发送(匿名)
  10. 大数据环境搭建 —— VMware Workstation 安装详细教程