XN*2图灵机-2021-04-12

该博客详细介绍了如何使用Java编程实现图灵机XN*2的模拟过程,包括十进制到二进制的转换、图灵机状态转换规则及最终的编码解码。通过具体的输入示例,展示了图灵机操作后的编码及译码后的十进制结果,涉及到了字符串操作和进制转换的算法应用。
摘要由CSDN通过智能技术生成

对于XN*2图灵机进行模拟

1. 算法分析

利用java程序实现图灵机XN * 2首先需要完成数的进制转换,在static StringBuffer transform(int number)方法中将输入的十进制数转化为二进制原码的字符串,将1变为10,0 变为0,逗号变为110,并且返回一个要进行改编的代码。
2) 在static void Calculate(StringBuffer coding)方法中,将1)得到的编码按照如下规则进行变化
内态:0,输入为0----内态:0,输出为0,右移;
内态:0,输入为1----内态:1,输出为0,右移;
内态:1,输入为0----内态:0,输出为1,右移;
内态:1,输入为1----内态:10,输出为0,右移;
内态:10,输入为0----内态:11,输出为1,右移;
内态:11,输入为0----内态:0,输出为1,不移动,STOP;
3) 在主函数public static void main (String[] args)方法中实现了输入要测试到的数,并且将所有的过程保存到out.txt当中去。利用随机数的测试代码,将之在打印区输出。

2. 概要设计

流程图

3. 测试

随机数36
输入7
out.txt显示.

输入的数:0
二进制编码后:0110
内态  输入  操作后              内态   输出
0---->0------->01100---->0---->0
0---->1------->00100---->1---->0
1---->1------->00000---->10--->0
10--->0------->00010---->11--->1
11--->0------->00011---->0---->1   STOP
0---->STOP
图灵机 操作后编码000110
译码后的十进制:0



输入的数:1
二进制编码后:10110
内态  输入  操作后              内态   输出
0---->1------->001100---->1---->0
1---->0------->011100---->0---->1
0---->1------->010100---->1---->0
1---->1------->010000---->10--->0
10--->0------->010010---->11--->1
11--->0------->010011---->0---->1  STOP
0---->STOP
图灵机 操作后编码0100110
译码后的十进制:2



输入的数:2
二进制编码后:100110
内态  输入  操作后              内态   输出
0---->1------->0001100---->1---->0
1---->0------->0101100---->0---->1
0---->0------->0101100---->0---->0
0---->1------->0100100---->1---->0
1---->1------->0100000---->10--->0
10--->0------->0100010---->11--->1
11--->0------->0100011---->0---->1 STOP
0---->STOP
图灵机 操作后编码01000110
译码后的十进制:4



输入的数:3
二进制编码后:1010110
内态  输入  操作后              内态   输出
0---->1------->00101100---->1---->0
1---->0------->01101100---->0---->1
0---->1------->01001100---->1---->0
1---->0------->01011100---->0---->1
0---->1------->01010100---->1---->0
1---->1------->01010000---->10--->0
10--->0------->01010010---->11--->1
11--->0------->01010011---->0---->1    STOP
0---->STOP
图灵机 操作后编码010100110
译码后的十进制:6

4. 调试

调试1

5. 心得体会

在此次的编写关于图灵机XN * 2 的java程序时,首先将图灵机的原理与每一步具体的变化理解清楚,再分析题目,分步去做模拟图灵机。查询了parseInt函数 以及 StringBuffer 的append 以及 delete 的函数调用.进制之前的转换.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值