- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好了大家,今天的目标是构建一个图灵机模拟器。对于那些不知道它是什么的人,请参阅 the Wikipedia article 。我们今天使用的状态表位于 the Formal Definition that's part of that page 的末尾。 .
该代码将采用“0”和“1”字符串字符的序列、表示机器启动字符的整数以及表示程序状态的整数(无特定顺序),并输出字符串操作的最终结果以及最终位置。示例:
示例1:
1010 state A(0)
^ (3)
1011 state B(1)
^ (2)
1011 state B(1)
^ (1)
1111 state A(0)
^ (2)
1111 state C(0)
^ (3)
1111 HALT
^ (2)
示例2:
110100 state B(1)
^ (3)
110100 state B(1)
^ (2)
111100 state A(0)
^ (3)
111100 state C(2)
^ (4)
111110 state B(1)
^ (5)
1111110 state A(0)
^ (6, tape has been extended to right)
1111111 state B(1)
^ (5)
1111111 state B(1)
^ (4)
1111111 state B(1)
^ (3)
1111111 state B(1)
^ (2)
1111111 state B(1)
^ (1)
1111111 state B(1)
^ (0)
01111111 state B(1)
^ (0, tape has been extended to left)
11111111 state A(0)
^ (1)
11111111 state C(2)
^ (2)
11111111 HALT
^ (1)
其他:
(希望)最终编辑:对于我在这个问题上造成的困惑和麻烦,我表示最诚挚的歉意:我误读了我列出的提供的状态表,并将其弄反了。希望您能原谅我浪费了您的时间;这完全是无意的!
最佳答案
至少要打败 perl 一段时间:)
def f(t,i,s):
t=map(int,t)
while s<3:t=[0]*-i+t+[0][:i>=len(t)];i*=i>0;c,t[i]=s*4+t[i]*2,1;i+=1-(2&2178>>c);s=3&3401>>c
return t,i
Python - 172 个字符
def f(t,i,s):
t=map(int,t)
while s<3:
t=[0]*-i+t+[0]*(i-len(t)+1);i=max(0,i);c,t[i]=t[i],1;i,s=[[(i-1,1),(i+1,2)],[(i+1,0),(i-1,s)],[(i+1,1),(i-1,3)]][s][c]
return t,i
测试用例
assert f("1010",3,0) == ([1, 1, 1, 1], 2)
assert f("110100",3,1) == ([1, 1, 1, 1, 1, 1, 1, 1], 1)
关于interpreter - 图灵机 Code Golf ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777582/
解释用于评估 haskell 表达式吗?如果可以,我该如何使用它? Language.Haskell.Interpreter> :t interpret interpret :: (Data.Type
解释用于评估 haskell 表达式吗?如果可以,我该如何使用它? Language.Haskell.Interpreter> :t interpret interpret :: (Data.Type
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我今天正在帮助某人从我们作为 txt 文件读入的 pdf 文件中正则表达式一些信息。不幸的是,tm 包 readPDF 功能当时无法正常工作,尽管通过一些修改我们能够让它正常工作。当我们正则表达式从
我们以 Python 为例。如果我没记错的话,当你用它编程时,计算机首先将代码“翻译”成 C。然后再从 C 到汇编。汇编是用机器代码编写的。 (这只是我对此的一个模糊想法,所以如果我错了,请纠正我)但
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Bootstrapping a language 为以目标语言编写的给定语言(例如 PyPy)配备解释器的重要性是什
这个问题在这里已经有了答案: 12年前关闭。 Possible Duplicate: What’s with the love of dynamic Languages 我已经阅读了this ,但我不
我有一个AST(抽象语法树),现在我想通过给它2个或多个数字来测试我的编译器,并期望输出带有数学运算结果的计算器(例如计算器)。 我的问题是,构建解释器的最佳方法是什么? AST节点的访问是递归的,因
这个问题在这里已经有了答案: What is the exact definition of a Metacircular Interpreter? (4 个回答) 3年前关闭。 同人可以向我解释一下
我正在研究我自己的玩具编程语言。现在我正在解释来自 AST 的源语言,我想知道编译为字节码然后解释它可以为我提供什么优势。 目前我想到了三件事: 数百次遍历语法树可能比在数组中运行指令慢,特别是如果数
我正在试验一个 3 加速度计分线板。 X 轴和 Y 轴很容易控制,但 Z 轴有点神秘。我试图找到一种方法来解释我的代码中的数据,以在设备在空中抬起时增加输出,并在降低时减少输出。这可能吗?如果是这样,
我是一个刚从其他IDE转到Pycharm的新用户。 我有一个关于交互式python解释器的问题,这是我运行脚本后可以键入变量以检查变量的“窗口”。 Pyscripter有一个叫做“Python解释器”
我记得遇到过一个网站,我可以在其中输入一些代码,它会编译并运行它(或出错),显示任何控制台输出。它接受各种解释型和非解释型语言——我特别记得我可以使用 C(也许也可以使用 Python...我不完全确
我问这个问题是因为我对解释器开发还比较陌生,我想在重新发明轮子之前了解一些基本概念。 我想到了存储在数组中的所有变量的值,该数组构成当前作用域,在进入函数时,数组将被交换,并将原始数组放入某种堆栈中。
我正在考虑在基于 Actor 的语言的解释器中使用类似 CPS 的东西。 函数参数在变体数组中传递,延续在同一个数组中返回,所以一个简单的函数 def add (x,y) => x + y 所以来自读
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
有没有办法改变对象在 Python 解释器中的显示方式?例如: >>> test = myobject(2) >>> test 'I am 2' 或 >>> test = myobject(2) >>
REPL 和解释器之间有什么技术区别吗? 最佳答案 交互式解释器使用 REPL。解释器不需要有一个。例如,您可以在非交互模式下(在文件上)运行 Python,并且它不会使用 read-eval-pri
在我看来,如果您使用解释性语言编写软件,那么销售软件一定很困难,因为购买它的任何人都可以毫不费力地对其进行编辑/更改/转售。 你如何解决这个问题?我有几个 PHP 应用程序,我不愿意出售给人们,因为他
我正在学习有关抽象解释的类(class),但是我还没有看到有关该理论如何映射到实际代码的任何示例。 我正在寻找简短的代码示例,在这些示例中,我最好不必使用整个编译器。分析不一定有用,我只想看一个示例,
我是一名优秀的程序员,十分优秀!