【问题标题】:Turing Machine: take a mod of two numbers?图灵机:取两个数的模?
【发布时间】:2017-12-03 09:34:15
【问题描述】:

设计一个图灵机,输入两个非负数并对它们执行 mod 运算,例如 mod(3,7)=3 和 mod(7,3)=1。显然,指定关于 TM 的输入和输出的任何假设和格式。

【问题讨论】:

    标签: automata turing-machines


    【解决方案1】:

    输入是两个正整数 X 和 Y 一元,由分隔符分隔。输出是一元的单个数字 Z。 TM 是单面单带确定性。

    首先,向右移动找到分隔符。然后,在 X 的结尾和 Y 的开头之间来回弹跳,标记符号对。如果在用完 Y 之前用完 X,则 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######
    

    【讨论】:

      【解决方案2】:

      下面给出一些基本信息

      ![在此处输入图片描述

      完整的图如下。这里 # 为空或 null.Idea 与上面给出的相同。 以下是您的 2 mod 3 的处理方式:

      #110111#
      #1a0b11#
      #aa0bb1#
      #aa#####
      #11#####
      

      以下是 3 mod 2 的处理方式:

      #111011#  
      #11a0b1#
      #1aa0bb#
      #100011#
      #a000b1#
      #a######
      #1######
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 2011-05-21
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多