编程模拟图灵机运行过程

 

第二章 图灵机

一.实验目的

  1. 掌握图灵机的概念和基本结构,理解图灵机的基本指令和编码方式;
  2. 掌握图灵机的编程方法。
  • 实验内容

   对于任意给定的一台Turing机和任意给定的字符串w ( w不含空格),编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。

三.要求

完成实验报告包含以下内容:

 1.题目分析

对于由如下指令给出图灵机(XN*2)在扩展的二进位上实现这个运算的指令:

00->00R,01->10R,10->01R,11->100R,100->111R,110->01STOP。输入一组字符串w(w不含空格),经过处理翻译命令,输出从开始运行起的每一步骤的结果。

 2.算法构造

    输入字符串,然后用if…else嵌套语句翻译命令,最后输出结果字符串

 3.算法实现

#include<stdio.h>
#include<string.h>
void main()
{
  int i;
  int len;//数组长度
  char str[30];//定义字符串数组
  int state=0;//内态
  printf("请输入字符串(扩展二进位编码):");//提示输入扩展二进位编码
  scanf("%s",&str);
  len=strlen(str);//求数组长度
  for(i=0;i<len;i++)//循环字符串数组
  {
    if(state==0&&str[i]=='0')//指令00->00R
	{
		state=0;//内态为0
	    str[i]='0';//输出为0
	}
	else if(state==0&&str[i]=='1')//01->10R
	{
	    state=1;//内态为1
	    str[i]='0';//输出为0
	}
	else if(state==1&&str[i]=='0')//10->01R
	{
	    state=0;//内态为0
		str[i]='1';//输出为1
	}
	else if(state==1&&str[i]=='1')//11->100R
	{
	    state=10;//内态为10
		str[i]='0';//输出为0
	}
	else if(state==10&&str[i]=='0')//100->111R
	{
	    state=11;//内态为11
		str[i]='1';//输出为1
	}
    else if(state==11&&str[i]=='0')//110->01STOP
	{
	    state=0;//内态为0
		str[i]='1';//输出为1
	}
	printf("输出结果:%s\n",str);//输出字符串(数组)
  } 
}

 

4.调试、测试及运行结果

  

 

 

1)调试

通过运行结果发现最后三条指令11->100R,100->111R,110->01STOP不能运行

经过调试验证发现在11->100R指令运行后内态state没有改变还是0,于是将内态state由原来定义的char型改为int型,结果内态变为10。

2)测试

 

 

3)运行结果

 

 

 

 5.经验归纳

1)定义为char型的变量,给其赋值应加’’。刚开始敲完代码发现运行结果的编码没有变,于是和同学讨论发现定义为字符型变量,给其赋值时应该加单引号,否则不能运行。

2)内态定义为字符型时,指令中的内态为10,11时不能运行,于是将其改为int型就好了。

3)学会如何定义字符数组,如何输入输出字符串数组。

4)c语言基础不太好,之前敲的代码太少,从现在开始应多上手敲代码,遇到问题应主动找办法解决,不能退缩。

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在计算机科学领域中,图灵机是一种经典的抽象计算模型。Python 是一种广泛使用的编程语言,支持多范式编程,包括面向对象、函数式和过程编程。基于这两种计算模型,可以实现 Python 图灵机建模与模拟的功能。 Python 图灵机建模包括两个主要过程:定义图灵机状态转移函数和定义输入输出处理函数。图灵机状态转移函数描述了在给定状态下,接收到的输入应如何转移到下一个状态。输入输出处理函数负责将输入解码为可处理的格式,并将输出编码为系统可理解的格式。 Python 图灵机模拟则包括三个主要步骤:初始化图灵机状态、读取输入执行状态转移函数。在初始化过程中,需要确定初始状态和计算空间。读取输入时,需要将输入编码为计算机可处理的格式,并将其存储在计算空间中。执行状态转移函数需要根据当前状态和输入,更新计算空间中的值并将转移到下一个状态。 Python 图灵机建模与模拟可应用于许多计算机科学领域,包括人工智能、计算机科学基础、自然语言处理等。在人工智能领域中,图灵测试就是一种测试人工智能的标准,其中图灵机建模与模拟技术被广泛应用。在计算机科学基础领域中,图灵机被用作理论计算模型,对计算可行性等问题进行研究。而在自然语言处理领域中,图灵机建模与模拟技术则被用于实现自然语言处理算法,如语法分析、机器翻译等。 总之,Python 图灵机建模与模拟是一项基于图灵机计算模型的抽象计算方法,在计算机科学和人工智能领域有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值