在讲解halting problem 问题之前,我们先来看一张图和一个小故事

  • 图片:

图片来自网络,如有侵权请联系删除

  • 故事:
    理发师悖论:
      在一个村子里只有有一个理发师,他说他只给不给自己理发的人理发
    那么他是否给自己理发?

请思考一下这个图和这个小故事


虽然这两个家伙个halting problem 不完全一致,但是有类似的地方

halting problem 是什么?
对任何一个程序给定一个输入,我们能否确定它是否会停止
可以转化成下面的这个概念

有没有一个特殊的程序,可以判断其他程序在接受一个输入并运行的时候是否能够停止, 即类似于是否有一个可以判断其他程序能够处理什么问题的程序

看上去这个问题的答案应该是 true,

但是我们来看一看详细证明:

  • 假设有一个函数 h(program,input) 它接受两个参数,一个是需要检测的程序,一个是对应的输入数据,如果这个输入导致这个程序能够停止,那么这个函数返回true, 否则返回 false
  • 然后我们现在有这样一个程序:
program(i){if(h(program,i){whlie(true);}else{return;}
}

解释:

  • 首先我们通过函数h() 判断对于输入i, 能否使这个程序停止
  • 如果能够使这个程序停止,那么我们让这个程序无限循环
  • 如果不能够使这个程序停止,那么我们让这个程序停止

也就是说我们通过h()函数 判断这个程序能够正常停止它却不会停止,但是判断它不会正常停止的时候它却正常停止.
就等于说这个h() 函数的判断是错误的, 不存在这样的一个函数.
与我们的假设相矛盾,证明假设错误,即没有这样一个函数

也就是说 对任何一个程序给定一个输入,我们不能确定它是否会停止

这里有点像一个杠精的感觉,但是这确实是一个无懈可击的反例,因为对于一个反证法我们只要能找出矛盾,证明它,当一回杠精又有何不可呢?


PS: 其实这个问题我认为也证明了我们不能通过计算机完成所有的事情

halting problem 详解相关推荐

  1. HDU-2993--MAX Average Problem详解

    此题是关于DP的优化问题,具体解题思路贴在后面 此题大意: 读入一列正数N,a1, a2, -, aN,以及一个数F.定义ave(i,j)=ai到aj的平均值,j-i+1>=k, 求一个最大的a ...

  2. 位运算详解+竞赛常见用法总结

    目录 一.位运算详解 二.位运算应用 1.快速幂 2.给定一个数组A, 长度为n,求下面这段程序的值 3.数数字 4.数数字 2 5.nim博弈问题: 6.树状数组 7.判断一个数x是不是2的某次方 ...

  3. Java源码详解四:String源码分析--openjdk java 11源码

    文章目录 注释 类的继承 数据的存储 构造函数 charAt函数 equals函数 hashCode函数 indexOf函数 intern函数 本系列是Java详解,专栏地址:Java源码分析 Str ...

  4. Mysql加锁过程详解(3)-关于mysql 幻读理解

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  5. 自动化监控--zabbix中的邮件报警通知详解

    前言 在自动化监控–zabbix安装和配置详解我们已经完成了zabbix监控的安装部署,今天我们就在它的基础上来实现一下自动监控的邮件报警通知. 添加一台主机 首先,添加一台host 只需填写Host ...

  6. jdbc mysql 自动重连_JDBC实现Mysql自动重连机制的方法详解

    JDBC是Java程序连接和访问各种数据库的API,它可以提供Java程序和各种数据库之间的连接服务,下面是爱站技术频道小编为大家带来的JDBC实现Mysql自动重连机制的方法详解. 日志:using ...

  7. SVM分类器原理详解

    SVM分类器原理详解 标签: svm文本分类java 2015-08-21 11:51 2399人阅读 评论(0) 收藏 举报  分类: 数据挖掘 文本处理(16)  机器学习 分类算法(10)  目 ...

  8. Oracle cursor_sharing 参数 详解

    一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...

  9. DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之MobileNet:MobileNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNet算法的简介(论文介绍) 1.研究背景 2.传统的模型轻量化常用的方法 ...

最新文章

  1. python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】
  2. http://www.ybtsoft.com/
  3. java druid mysql连接池_java使用Druid连接池连接mysql
  4. centos 新建swap区文件
  5. python 渗透框架_Python渗透测试框架:PytheM
  6. 简单绘图软件实现mfc大作业_纸笔书写|可直播可微课可写作业可批改的手写板,快来爱“我”吧...
  7. 关于django新版本无法使用MySQL数据库的问题
  8. 题目1001:A+B for Matrices
  9. 波斯语网站步百度后尘糟伊朗网军出击
  10. C#设计模式系列 8 ----Builder 生成器模式之--发工资了,带老婆到 岗顶百脑汇配置电脑...
  11. SQL 被当成代码?谷歌的理由绝了!
  12. centos7正确关机重启
  13. Spring→面向切面编程AOP、相关概念、通知Advice类型、配置切面切入点通知、AOP相关API、AOP代理类ProxyFactoryBean、AOP注解@AspectJ
  14. 数据链路层的主要功能
  15. spring-day03-底层事务、AOP
  16. DELL 电脑 重装系统出现 no boottable devices found
  17. java 发起HTTPS请求-SSL客户端
  18. 2019年(本命年)个人总结
  19. 【T+】删除/取消畅捷通T+软件登录账套后的“查看认证”按钮
  20. 一代才女林徽因 人生若只如初见

热门文章

  1. Nginx下同域部署多个Vue项目(history路由模式),报404、500错误
  2. kubernetes 核心术语
  3. 一份规范的接口文档应该包括什么内容?
  4. 全国计算机二级考试对选择题有要求吗,全国计算机二级考试攻略
  5. 【前端面试课程重点总结】
  6. 知识付费的8个小问题
  7. 【转】性能测试中如何定位性能瓶颈
  8. 如何向oracle中导入数据,Oracle导入导出数据库的语法_Oracle_Oracle语法_Oracle数据库_课课家...
  9. STM32测量PWM波频率及占空比
  10. 怎样把gis锯齿边_在arcgis中如何消除锯齿状边缘