我的猫居然是图灵机?!

震惊!
我的猫居然是图灵机!
不信, 先把祖师爷关于图灵机的定义拉出来看一下:
在一条无限长的纸带(tape)上, 一个读/写头进行移动, 或按照特定的指令集执行更加复杂的行为:

我的猫居然是图灵机?!

文章插图

图灵本人还证明:只要图灵机可以被实现, 就能够用来解决任何可计算问题 。
可以说, 这一非实体概念是任何一个现代计算机程序的层级结构能达到的最高水平 。
我的猫居然是图灵机?!

文章插图

所以, 要成为一只图灵猫, 就至少要做到:
输入和输出
增加或减小当前内存值
在当前的纸带上向左或向右移动
执行循环
接下来, 你将看到猫猫能模拟出图灵机的完整证明流程 。
勇敢的猫猫快去创造奇迹
整个证明流程最快只需花费5分钟 。
首先, 来进行一个简单的输入:
戳!
我的猫居然是图灵机?!

文章插图

然后迅速得到了输出:
一个看铲屎官的眼神和潇洒的转身!
我的猫居然是图灵机?!

文章插图

显然, 猫猫具有处理输入和输出的能力, 条件完成(1/4) 。
接下来是看猫猫能不能完成内存值的增减, 不过前提是先拥有一个内存条 。
再复习一遍图灵机的概念:
无限长的纸带(tape)会被分割成一个个的方格(square), 每个格子上可以写上至多一个字符(symbol) 。
而读写头(head)相当于指向其中一个格子的指针, 可以读取、擦除、写入当前格子的内容, 也可以每次向左或向右右移动一个格子
我的猫居然是图灵机?!

文章插图

刚好, 猫猫把铲屎官买的猫粮弄洒在了铲屎官的房间地板上, 就是这个了!
(铲屎官的东西当然都是猫猫的啦)
我的猫居然是图灵机?!

文章插图

可以像右边这样, 把地板砖看作是纸带上的方格, 相当于是一个内存单元 。
猫猫可以识别到地板上的猫粮以读取内存值, 可以跑过去吃掉猫粮以擦除内存值, 也可以再次踹翻猫粮, 在内存条上其他位置写入新的值 。
增加或减小当前内存值, 完成(2/4)!
后面两条就简单了, 猫猫显然具有向左向右移动内存头的能力:
我的猫居然是图灵机?!

文章插图

这下猫猫就可以继续在别的瓷砖里读取/擦除/写入猫粮了 。
也就是移动内存头来编辑另一个内存单元 。
而当铲屎官刚刚收拾完之后, 猫猫又能在极小的时间差内再次打翻猫粮, 完成一次完美的循环:
我的猫居然是图灵机?!

文章插图

两个条件一次完成, (4/4)!
上述整个实验流程都来自一名国外博主Chloé Lourseyre, 她在完成了实验后兴奋宣布:
猫猫做到了能够用图灵机做到的大部分事情, 所以, 这是一只图灵完备猫!
……吗?
显然不是 。
虽然成功模拟图灵机, 能执行所有可被描述的计算是实现图灵完备(Turing Complete)的充分必要条件, 但人家图灵机还有一个无限长的纸带呢 。
而铲屎官并没有无限大的房子(泪目了家人们) 。
因此, Chloé Lourseyre本人虽然手握图灵猫, 却连一串简单的代码都无法执行:


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。