博客
关于我
图灵机 快速入门教程
阅读量:414 次
发布时间:2019-03-06

本文共 1199 字,大约阅读时间需要 3 分钟。

文章首发于,点击跳转到原文。

图灵机是图灵机理论中提出的理想模型,其可以实现任意复杂的计算。

什么是图灵机

英国数学家艾伦·图灵在1936年提出了「图灵机」的理论。「图灵机」设想有一条无限长的纸条,纸条上有一个个方格,每个方格可以存储一个符号,纸条可以向左或向右运动。

图灵机可以做下面三个基本的操作:

  • 读取指针头指向的符号。
  • 修改方框中的字符。
  • 将纸带向左或向右移动,以便修改其临近方框的值。

下面我们通过一个小例子来了解下图灵机到底是如何进行计算的。这个例子比较简单,我们将在空白的纸带条上打印1 1 0这三个数字。

首先,我们向指针头指向的方框中写入数字1:

接着,我们让纸带向左移动一个方框:

现在,我们再往指针头指向的方框写入数字1:

接着,我们继续让纸带向左移动一个方框,并写入数字0:

这样我们就完成了一个简单的图灵机操作。

用图灵机完成异或操作

我们来尝试一个稍微复杂点的操作,我们尝试将1 1 0做一个异或操作,即将1 1 0变成0 0 1。要图灵机完成计算,就类似于向图灵机输入以下操作指令,这些指令组成了一个小程序。

读到的符号 写入指令 移动指令
- -
0 写入1 向右移动纸带
1 写入0 向右移动纸带

我们假设图灵机纸带现在的状态如下图所示:

现在读取到的符号是0,按照操作指令,我们应该往方框写入1并向右移动一个方框:

现在读取到的符号是1,按照操作指令,我们应该往方框写入0并向右移动一个方框:

类似地,现在读取到的符号是1,我们重复相同的操作。

最后,我们读取到了一个空白字符,图灵机不做任何操作。

用图灵机完成任意复杂计算

上面我们使用了图灵机成功完成了异或操作,理论上来讲我们也可以完成加法、减法、乘法、除法操作,只不过是实现的步骤(指令)复杂些而已。下面这个网站是一个图灵机的在线模拟器,其实现了一些基本运算,比如:加法、减法等,有兴趣的可以自己去试试看。

图灵机的意义

让我们尝试这样的思考历程:

  • 我有许多很复杂的公式需要计算,如果自己一个人算的话时间会很久。
  • 思考:能不能有一个东西能帮我实现公式的计算,无论这个公式有多复杂?
  • 思考:我能不能设计一个模型来证实这个实行是可行的?(数学家最喜欢建模型来证明了~)
  • 思考:提出「图灵机」理论,任何计算都可以简化成固定的步骤,无论多复杂的计算都能实现了。
  • 某些动手能力强的数学家利用电子工程学知识将许多真空管组成了一套设备,实现了「图灵机」理论模型。
  • 随着电子工程的不断发展,原本庞大的计算机不断变小,慢慢地变成了今天的计算机。

「图灵机」理论通过假设模型证明了任意复杂的计算都能通过一个个简单的操作完成,从而从理论上证明了「无限复杂计算」的可能性,直接给计算机的诞生提供了理论基础。

从这样的思考历程来看,图灵机的出现为计算机的诞生奠定了理论基础,这就是图灵机诞生的意义。

文章首发于,点击跳转到原文。

转载地址:http://fsakz.baihongyu.com/

你可能感兴趣的文章
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>