一、实验目的
-
掌握图灵机的概念和基本结构,理解图灵机的基本指令和编码方式;
-
掌握图灵机的编程方法。
二、实验内容
对于任意给定的一台Turing机和任意给定的字符串w ( w不含空格),编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。
三、实验报告
1.题目分析
我准备要做的是XN*2的图灵机模拟。
(1) 我通过书本知识知道了它的运行过程:
00->00R:内态和纸带上的数字都为0时,不改变;
01->10R:内态为0数字为1时,内态变为1数字变为0;
10->01R:内态为1数字为0时,内态变为0数字变为1;
11->100R:内态为1数字为1时,内态变为10数字变为0;
100R->111R:内态为10数字为0时,内态变为11数字变为1;
110R->01STOP:内态为10数字为1时,内态变为0数字变为0。
(2) main函数的构造,分为五部分:输入,判断,计算,输出,测试。
输入输出通过定义的一维数组来存放扩展二进制数字;
判断通过(a[i]!=‘0’)&&(a[i]!=‘1’)来判断输入数据的正确性;
计算部分通过if-else语句实现内态变化的输出;
测试方面通过clock()计时函数判