绞刑

在审讯中一位囚徒被法官判处死刑。判决如下:“你下周将会被处决,但哪天处决对你来说是一个惊喜。”囚徒因此作出如下推理:“假如处决日是周日,那么在周六夜晚降临后,我将提前知道我周日会被处决,那样的话处决就不再是惊喜,所以周日我不会被处决。排除了周日之后,如果周五夜晚降临后我还没被处决,则我将提前知道我周六会被处决,所以我周六也不会被处决。以此类推。因此,处决是不会发生的。”

然而,这个囚徒的愉快心情保持到了星期二。他从美梦中醒来,被押往刑场——对他来说非常意外。


推广1

假设教师爱丽丝只说过考试会在下周,但没有说考试是惊喜。

午餐时她的学生瑞尼克路过教师办公室,听到老师对同事说,“下周我将给我们班上的同学考试,而考试日期对他们来说是一个惊喜”。老师并没有意识到瑞尼克在听她说话。根据关于考试日期的信息,瑞尼克能得出什么结论?


推广2

在推广一的情况下。事情变得更复杂了。因为午间休息之后,瑞尼克对老师说,“我听到你说下周考试的日期是一个惊喜”。老师确认了这一点。然而那天晚些时候,老师在停车处再次遇到了办公室的同事。老师告诉同事瑞尼克听到了他们之前的对话,并说到:“但是考试日期仍是惊喜!”很不幸,瑞尼克再次听到了这句话。现在关于考试日期的信息,瑞尼克能得出什么结论?


个人想法

个人感觉这个悖论与一般传统的悖论不同,有一些摸棱两可的文字游戏。

从推广一我们可以轻松得出结论,考试日期不会在周五(即最后一天,如果老师说的下周是工作日周一到周五的话)。

在推广一下的信息链如下:

  • 老师对班上同学说:“下周将举行考试”。宣布了这个事实之后,班上所有同学知道下周要考试,老师也知道班上同学知道下周要考试。
  • 老师对同事说:“考试日期是一个惊喜”。宣布了这个事实之后,瑞尼克可以推断出考试不在周五,而老师不知道瑞尼克知道这个事实。
  • 由于没有新的宣告出现,也没有新的信息交流。双方掌握的事实到这里就结束了,瑞尼克只能知道考试不在周五。

在推广二的信息链中,新增信息如下:

  • 瑞尼克对老师说:“我听到你说下周考试的日期是一个惊喜”。此时,老师知道了一个新的事实,即瑞尼克知道下周考试不是在周五。
  • 老师对同事说:“但是考试日期仍是惊喜”。同推广一可知,瑞尼克可以通过此宣告推断出考试不在周四,而同样的老师不知道瑞尼克获得了这个新的信息。
  • 由于没有新的宣告出现,也没有新的信息交流。双方掌握的事实到这里就结束了,瑞尼克只能知道考试不在周五和周四。

对比原版的题目,法官对囚徒直接作出宣布:“下周你将被处死,而处死日期对你来说是一个惊喜。”

从囚徒的视角中,他得出如下信息链:

  • 法官宣布事实“囚徒下周会被处死”
  • 法官宣布事实“处死日期是惊喜”
  • 囚徒作出推断并获得新的事实“处死日期不会是下周最后一天即周日”
  • 法官知道上述事实,即法官知道“囚徒知道处死日期不会是周日”
  • 根据事实“处死日期是惊喜”
  • 囚徒作出推断并获得新的事实“处死日期不会是周六”
  • 法官知道上述事实,即法官知道“囚徒知道处死日期不会是周日和周六”
  • ......
  • 囚徒作出推断并获得新的事实“处死日期不会是下周的任何一天”
  • 若该事实成立,则与最开始“囚徒下周会被处死”矛盾

在通常的理解中,上述蓝色的信息,法官是确实知道的,因为“处死日期是惊喜”是法官当面告诉囚徒的。所以囚徒当然会认为,所有的信息双方都是互相知道的。这样信息链才能成立。而关键就在于“处死日期”这四个字,当法官第一次宣布“处死日期时惊喜”时,此时的处死日期可能存在与周一到周日七天中的一天,但是在根据事实作出正确推断之后,处死日期只可能存在于周一到周六六天中的一天。第二行和第五行中的“处死日期”不是同一件事物,事物发生了改变,命题是否依然为真也就随即发生了改变。信息链就有可能不成立了。

有很多为了解决该悖论的论文,但并没有被完全认同的解决方案,以上只是个人看法。

[逻辑学]意外绞刑悖论(Hangman paradox)(又称意外考试悖论)的更多相关文章

  1. 意外断电数据库无法启动牵扯到异步IO的参数设置

    一客户机房新装的UPS不太稳定,好几次意外断电,第3次意外断电之后问题终于来了, 数据库起不来了-- 数据库的硬件环境是一台IBM DS5020存储,2台IBM X3850 X5 软件环境是Linux ...

  2. Birthday Paradox

    Birthday Paradox Sometimes some mathematical results are hard to believe. One of the common problems ...

  3. MySQL redo log 与 binlog 的区别

    MySQL redo log 与 binlog 的区别 什么是redo log 什么是binlog redo log与binlog的区别 1. 什么是redo log? redo log又称重做日志文 ...

  4. Android Service提高

    我们从以下几个方面来了解Service IntentService的使用 Service与Thread的区别 Service生命周期 前台服务 服务资源被系统以外回收处理办法 不被销毁的服务 Inte ...

  5. 越狱Season 1-Episode 8: The Old Head

    Season 1, Episode 8: The Old Head -Michael: 17 days from now they strap my brother to an electric ch ...

  6. 【转载】TCP保活(TCP keepalive)

    下图是我遇到tcp keepalive的例子: 以下为转载: TCP保活的缘起 双方建立交互的连接,但是并不是一直存在数据交互,有些连接会在数据交互完毕后,主动释放连接,而有些不会,那么在长时间无数据 ...

  7. 网络编程(学习整理)---2--(Udp)实现简单的控制台聊天室

    1.UDP协议: 总结一下,今天学习的一点知识点! UDP也是一种通信协议,常被用来与TCP协议作比较!我们知道,在发送数据包的时候使用TCP协议比UDP协议安全,那么到底安全在哪里呢?怎么理解呢! ...

  8. apscheduler的使用

    最近一个程序要用到后台定时任务,看了看python后台任务,一般2个选择,一个是apscheduler,一个celery.apscheduler比较直观简单一点,就选说说这个库吧.网上一搜索,晕死,好 ...

  9. ASP.NET Core 四种释放 IDisposable 对象的方法

    本文翻译自<Four ways to dispose IDisposables in ASP.NET Core>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! IDispos ...

随机推荐

  1. java线程中yield(),sleep(),wait()区别详解

    1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...

  2. javascript权威指南第16章 HTML5脚本编程

    <!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...

  3. MySQL表结构,表空间,段,区,页,MVCC ,undo 事务槽

    索引组织表(IOT表):为什么引入索引组织表,好处在那里,组织结构特点是什么,如何创建,创建IOT的限制LIMIT. IOT是以索引的方式存储的表,表的记录存储在索引中,索引即是数据,索引的KEY为P ...

  4. Python学习之--基础语法

    一.定义 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言. 二.Python变量的命名规则 1. 变量名只能包含字母.数字和下划线: 2. 变量名不能包含空格: 3. 不要将Py ...

  5. 51nod 3 * problem

    1640题意:一张无向图在最小化最大边后求最大边权和 Slove:sort 最小生成树倒叙最大生成树 #include <iostream> #include <cstdio> ...

  6. DBUtils的最基本的使用

    背景 学习了如何连接数据库之后,发现里面进行查询的过程有点麻烦,因此使用DBUtils包来简化操作 配置环境 win10 jdk11 idea mysql8.0.13 jar包 连接数据库的包 c3p ...

  7. 使用scala通过JNI技术调用c++代码

    scala代码编写 Sample1.scala class Sample1 { // --- Native methods @native def intMethod(n: Int): Int def ...

  8. mysql安装和简要操作命令+python基本操作mysql数据库

    mysql数据库是一种关系型数据库管理系统.  一. windows平台安装Mysql数据库. Mysql数据库官网 :https://dev.mysql.com/downloads/windows/ ...

  9. JavaScript中获取html元素常用手法和区分

    对于许多前端开发项目来说,获取元素进行操作是必不可少的,例如tab标签,全屏切换,自动滚播等效果都需要通过获取节点元素来实现.下面我来总结下JavaScript最常用的4个Document对象中获取元 ...

  10. ML_Review_PCA(Ch4)

    Note sth about PCA(Principal Component Analysis)   ML6月20日就要考试了,准备日更博客,来记录复习一下这次ML课所学习的一些方法. 博客是在参考老 ...