图灵机的模拟

一.实验目的

  1. 掌握图灵机的概念和基本结构,理解图灵机的基本指令和编码方式;
  2. 掌握图灵机的编程方法。
    二.实验内容
    对于任意给定的一台Turing机和任意给定的字符串w ( w不含空格),编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。
    三.流程图
    在这里插入图片描述

源代码

package 作业;
import java.util.*;
public class 作业 {
		public static void main (String[] args)
		{
			int s=0;
			int [] str= {0,1,0,1,0,1,1,0,0,0};//对字符串进行赋值
			int temp=0;//内态初始值为0
			for(int i=0;i<9;i++)//利用循环对字符串进行操作
			{
								s=s+1;//判断字符运行到第几次
				if(str[i]==0&temp==0)//执行00->00
					{
					str[i]=0;
					temp=0;
					for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
					}
					System.out.println("此时第"+s+"位发生变化");
					continue;//跳出当前循环
					}
				if(str[i]==1&temp==0)//执行01->10
				{
					str[i]=0;
					temp=1;
					for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
						
					}
					System.out.println("此时第"+s+"位发生变化");
					continue;
				}
				if(str[i]==0&temp==1)//执行10->01
				{
					str[i]=1;
					temp=0;
					for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
					}
					System.out.println("此时第"+s+"位发生变化");
					continue;
				}
				if(str[i]==1&temp==1)//执行11->10 0
				{
					temp=10;
					str[i]=0;
					for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
						
					}
					System.out.println("此时第"+s+"位发生变化");
					continue;
				}
				if(str[i]==0&temp==10)//执行10 0->11 1
				{
					str[i]=1;
					temp=11;
					for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
						
					}
					System.out.println("此时第"+s+"位发生变化");
					continue;
				}
				if(str[i]==0&temp==11)//执行11 0->01
				{
					str[i]=1;
					temp=0;for(int k=0;k<str.length;k++)//将每一个字符串变化的过程输出
					{
						System.out.print(+str[k]);
						
					}
					System.out.println("此时第"+s+"位发生变化");
					break;//步骤结束跳出循环
				}
			}
			System.out.print("经过运算的结果为:");//输出最终结果
			for(int k=0;k<str.length;k++)
			{
				System.out.print(+str[k]);
			}
		}
		}

四.测试图片

在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值