程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了图灵机具有一种将二进制转换为十进制的状态大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决图灵机具有一种将二进制转换为十进制的状态?

开发过程中遇到图灵机具有一种将二进制转换为十进制的状态的问题如何解决?下面主要结合日常开发的经验,给出你关于图灵机具有一种将二进制转换为十进制的状态的解决方法建议,希望对你解决图灵机具有一种将二进制转换为十进制的状态有所启发或帮助;

我听说一个状态的图灵机应该可以将二进制数转换为十进制数。我想弄清楚这怎么可能。我目前很不成功地强行获得结果。如何以更优雅的方式综合?

二进制数以相反的顺序给出,例如。 25 是 10011 而不是 11001。我认为这会更容易。不确定它是否也是必需品。该数字在末尾由另外两个符号封装。另外 0 和 1 在开头表示为 T 和 F --> .......TFFTTXXXXX。生成的十进制数应如下所示:.....25-----XXXXX。此外,停止状态不计为真实状态。据我所知,这是提出这样一个问题的必要条件。

我在研究单态图灵机时发现了 this paper。我看到有些进位和计数器位,但我无法解释自己这将如何帮助将十进制数增加到 10,然后进位到下一位。给定一个状态,我正在虑每个十进制数字至少有 10 个不同的术语,还有一些用于中断、进位、计数器等的符号。因此,我的单一状态的定义变得很长。这里有一个例子来说明我的意思(明显错误):

state trigger --> (output,state,shift): 
s,1 --> (2,s,>) 
s,2 --> (3,>) 
...,8 --> (9,>)
s,9 --> (c,>)

解决方法

只有一种状态,您必须编码信息以计数位。诀窍是你在二进制数上倒数,在十进制数上数。

假设我们从 ......[T]FFTTXXXXX 开始,根据您的示例,[] 表示写入后我们当前的头部位置。向右转并用 T 翻转 F 以减少二进制。然后,用 . 覆盖遇到的(以及任何未来的)1。您现在应该拥有以下内容:

  • .....[.]FFFTTXXXXX
  • .....[1]FFFTTXXXXX

回到右边。现在,我们遇到了一个问题:我们需要越过 F,将它们翻转到 T,转到第一个 T然后返回。为了不翻转我们刚刚传递的数字,我们将它们替换为像 - 这样的占位符,结果如下:

  • .....1[F]FFTTXXXXX
  • .....1-[F]FTTXXXXX
  • .....1--[F]TTXXXXX
  • .....1---[T]TXXXXX
  • .....1--[-]FTXXXXX

现在,返回并替换占位符:

  • .....1-[-]TFTXXXXX
  • .....1[-]TTFTXXXXX
  • .....[1]TTTFTXXXXX

现在只需将 1 增加到 2.....2[T]TTFTXXXXX

再次向右走,重复这个过程:

  • .....[2]FTTFTXXXXX
  • .....3[F]TTFTXXXXX
  • .....3-[T]TFTXXXXX
  • .....3[-]FTFTXXXXX
  • .....[3]TFTFTXXXXX
  • .....4[T]FTFTXXXXX
  • 等。直到图灵机在遇到的第一个 X 处停止

您会遇到的唯一问题是您需要以某种方式用 9 覆盖小数 10。为此,将 9 替换为占位符,向左移动,运行从 .1 的正常状态转换,向右返回并将占位符替换为 {{ 1}}。不要忘记添加从 00 的过渡。


便说一句,这似乎是我也参加的某个讲座的家庭作业;)

大佬总结

以上是大佬教程为你收集整理的图灵机具有一种将二进制转换为十进制的状态全部内容,希望文章能够帮你解决图灵机具有一种将二进制转换为十进制的状态所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: