我是Python的新手,所以我真的不明白这一点。它是某种图灵机应该写二进制数,但我无法弄清楚这些规则之后发生了什么
def f1(arg1, arg2, ..., arg6):
...
def f2(arg1, arg2, ..., arg6):
...
# initialize dictionary
d = {'arg1': 'val1', 'arg2': 'val2', ...}
# fill default values (or use defaultdict with appropriate factory)
d['arg1'] = d.get('arg1', 'default_arg1_value')
d['arg2'] = d.get('arg2', 'default_arg2_value')
...
f1(**d)
f2(**d)
...
答案 0 :(得分:1)
这是一台状态机。 在每个刻度线处,根据旧状态和磁带位置处的磁带内容计算新状态。在这一行:
state, tape[position], move = rules[(state, tape[position])]
此声明是一项解构任务。赋值的右侧将为您提供一个规则条目,这是一个由三个元素组成的元组。这三个元素将分别指示状态,磁带[位置]和移动。
另一件可能让你困惑的事情是:
system = tick(*system)
尤其是*。
在此行中,使用元组系统的内容调用(处理器时钟)滴答功能。解压缩到单独的参数中。
我希望这很清楚,但你对图灵机感兴趣的事实告诉我你已经掌握了计算机编程......;)