设计图灵机,输入两个非负数并对它们执行mod操作,例如,mod(3,7)= 3和mod(7,3)= 1。显然,请指定有关TM输入和输出的任何假设和格式。
答案 0 :(得分:3)
输入是由分隔符号分隔的一元中的两个正整数X和Y.输出是一元中的单个数字Z. TM是单面单带确定性的。
首先,向右移动以找到分隔符。然后,在X的结尾和Y的开头之间来回反弹,标记符号对。如果在用完Y之前用完了X,那么X< Y和X mod Y = X;擦除分隔符及其后的所有内容,然后将所有磁带符号更改为一元数字并停止接受。如果在X之前用完Y,则将X中的标记符号更改为擦除/分隔符,将Y的标记符号恢复为一元数字,然后重复(X> = Y,因此X mod Y =(X - Y)mod Y)。
这里是你的2 mod 3的处理方式:
#110111#
#1a0b11#
#aa0bb1#
#aa#####
#11#####
以下是3 mod 2的处理方式:
#111011#
#11a0b1#
#1aa0bb#
#100011#
#a000b1#
#a######
#1######
答案 1 :(得分:0)