问题描述
对于XN*2图灵机进行模拟,任意给定的十进制数a,转换为收缩扩展二进制的编码,再编程模拟此Turing机的运行过程,要求输出从开始运行起的每一步骤的结果。
步骤
算法分析
1,函数turing_conversion()将输入的数据转化为二进制扩展码
2,函数turing_operate()实现图灵机(XN*2)的操作
3,函数turing_result对操作完的数 实现转化并输出
概要设计
如图1所示
相关代码
# @File: turing.py
# @Data: 2021/4/11
# @Author: CheYuHang
# @Software: Pycharm
class turing:
def turing_conversion(number):
"""
对输入的数据转化成二进制的扩展码
:return:
"""
x = number
b = bin(x).replace('0b', '')
# 二进制转化
print("转化为二进制为:" + b)
# 将二进制结果转为列表
c = list(map(int, b))
# 判断输入值0时的情况
if c[0] == '0':
return 0
else:
n_c = [0, 1, 0]
for a in c[1:]:
if a == 1:
n_c.append(10)
else: