那些有意思的悖论

“这个世界上没有绝对正确的事,这句话绝对正确”
最近看到的一句很值得辩思的一句话,还有很多有意思的悖论。
  • 时空穿梭悖论
时空穿梭的悖论可以分为两种。一种是穿越到过去,一种是预见未来。
穿越过去:如果你乘坐时空机回到过去在你祖父祖母相遇之前杀手你祖父会发生什么事?假如你穿越的过去,亲手杀了你的爷爷,那么就不回有你爹的出生,自然也就不会有你的出生,那么没有你,又何来前面说的穿越杀手你爷爷的事情。
预见未来:某人到达未来,得知将发生不幸结果A。他在现实做出了避免导致结果的行动,发生结果B。那么结果A在未来根本没有发生,他就不可能得知结果A。(即A与B不可能相遇的悖论)
  • 匹诺曹的说谎悖论

看过《十万个冷笑话》的都应该知道,匹诺曹只要一说谎鼻子就会变长。现在问题来了,如果匹诺曹说:“我的鼻子马上就会变长。” 结果会怎样?

  • 理发师悖论
镇上的理发师写下诺言:“我只帮那些不给自己理发的人理发”。问题来了:谁来为这位理发时理发?如果其他理发师帮他理,那么变成他也是那些不能给自己理发的人,按照诺言他应该给自己理,但是如果他给自己理发,他就成了给自己理发的人,这又违背了他的诺言。
  • 你猜悖论

例如,如果有一天你的女朋友霸道的拿了你的钱包,你问她要,她说:“你猜我给不给你,猜对了就给你”,如果你猜:“你不会给我”,你猜她会给你还是不给你?给你说明你猜错了,那么就不应该给你;不给你说明你猜对了,那么他就应该给你,给你说明又不对了。


  • 柏拉图-苏格拉底悖论
柏拉图(Platon,Πλτων, 约前427年-前347年),古希腊伟大的哲学家,也是全部西方哲学乃至整个西方文化最伟大的哲学家和思想家之一,他和老师苏格拉底,学生亚里士多德并称为古希腊三大哲学家。
柏拉图说:“苏格拉底的下句话是错误的”。
苏格拉底说:“柏拉图说得对。”
不论你假定哪个句子是真的,另一个句子都会与之矛盾。两个句子都不是自我诠释,但作为一个整体,同样构成了说谎者悖论。


最后在来一个猿猿们才能看的懂的

  • 停机问题
这是我们的祖师爷图灵提出的一个比较有意思的证明题。命题是这样的:不存在一个程序,它能够计算任何程序在给定输入是否会导致停机。
现在我们来证明这个问题。我们先来假设我们某一天真做出了这么一个牛逼的万能算法(就叫做god _algo吧),你这样给他一段程序,在给它一段输入,它就能告诉你这个输入会不会停机,我们来写一下这个算法吧:
bool God_algo(char * program, char input){
     if(<program> halts on <input>){
        return true;
      }
     return false;
}

我们假设 if 的判断语句里面是人类天才思考的结晶,它能够像上帝一样洞察一切程序的宿命。现在我们从 God_algo 出发导出一个新的算法:
bool Satan_algo( char* program){
     if( God_algo(program,program)){
        while(1); // loop forever
        return false; // can never get here;
      } else {
        return true;

     }
}

邪恶的事件发生了。当我们把这个算法运用到它自身时,会发生什么呢?
  
Satan_algo(Satan_algo);

我们来分析下这行程序的简单调用:
显然, Satan_algo(Satan_algo) 要么能够运行结束返回(停机),要么不能返回(loop forever)。
如果他能够结束,那么 Satan_algo 算法里面那个 if 判断就会成立(应为 God_algo(Satan_algo,Satan_algo) 会返回 true),从而程序进入了那个无穷循环的 if 分支,于是 Satan_algo(Satan_algo) 调用久拥有不会返回(停机)了。
而如果 Satan_algo(Satan_algo) 不能结束(停机)呢,则 if 判断不会成立,从而进入另一个分支并成功返回 true ,即 Satan_algo(Satan_algo) 又能结束(停机)了。
由此得出悖论:
Satan_algo(Satan_algo) 能停机 =》它不能停机
Satan_algo(Satan_algo) 不能停机 =》它能停机
所以命题不成立。祖师爷,收下我的膝盖吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值