python图灵完备_什么是图灵完备?

图灵机模型符合直观但是不容易联系到具体的计算上,我从递归函数的角度来说一下。

首先我们有三种基本的函数:

- 零函数:

equation?tex=Z%28n%29%3D0

- 后继函数:

equation?tex=S%28n%29+%3D+n%2B1

- 投影函数:

equation?tex=%5Cpi_i%28n_1%2C+n_2%2C+...%2Cn_k%29%3Dn_i

然后我们有三种操作:

- 函数组合:

equation?tex=%28g+.+f+%29%28n%29%3D+g+%28f+%28n%29%29

- 原始函数递归:

equation?tex=h%280%2Cn_1%2C...%2Cn_k%29%3Df%28n_1%2C...%2Cn_k%29

equation?tex=h%28S%28m%29%2C+n_1%2C+...%2C+n_k%29+%3D+g%28m%2C+h%28m%2C+n_1%2C+...%2C+n_k%29%2C+n_1%2C+...%2C+n_k%29

- 极小化:如果对任意的自然数

equation?tex=n_1%2C+n_2%2C+...%2C+n_k ,存在自然数m使

equation?tex=f%28n_1%2C...%2Cn_k%2Cm%29%3D0 ,并且

equation?tex=g%28n_1%2Cn_2%2C...%2Cn_k%29 是使

equation?tex=f%28n_1%2C...%2Cn_k%2C+m%29%3D0 最小的

equation?tex=m (如果找不到那在这一点上

equation?tex=g 没有值),那

equation?tex=g%28n%29 是通过把

equation?tex=f 极小化得到的。

这三种函数通过前两种操作组合出来的所有函数被称为原始递归函数(primitive recursive function),原始递归函数+极小化组合出来的函数叫偏递归函数(partial recursive function,参考 读《The Little Schemer》时,看到第9章有partial function和total function两个概念,不是特别懂,请赐教?)。图灵机和偏递归函数等价,一个语言如果是图灵完备的,那这个语言可以完全模拟这三种函数+三种操作。如果一门语言只能模拟原始递归函数,那你就无法写出无限循环。想想单片机、服务器、操作系统,如果没有无限循环跑起来该有多痛苦,这就是为什么通用编程语言都要图灵完全的原因。

顺便一提,图灵机是我们已知能实现的最强的计算模型。最近媒体经常报道的量子计算机仍然是图灵机,只是特定算法快一些。

顺便二提,根据Kleene正规型定理,任意偏递归函数都可以由原始递归函数经过一次极小化得来,所以写程序的时候如果发现两层以上的无限循环要格外小心,很可能逻辑是错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值