0

チューリングマシンに慣れてきました。私は半正確な仮想チューリングマシンを作成中ですが、解決策があることを知っている一見単純な問題に遭遇しました。オンラインで調査しましたが、私の問題を満たすものは見つかりませんでした。

関数内で変数 'l' を呼び出し可能にする方法を教えてください。関数内で変数の初期値を定義すると、関数がループすると値が0にリセットされるため、呼び出し可能である必要があります。

これが私のコードです:

blanktape = []
for x in range(1,251):
    x = ' '
    blanktape.append(x)

global l
l = 1
non = ' '
head = blanktape[l]
symbols = [3, 'ee', 'x']

def mconfigb():
    if head == non:
        blanktape[blanktape.index(head)] = 0
        l = l + 2

def mconfigc():
    if head == non:
        blanktape[blanktape.index(head)] = 1
        l = l + 2

def turingmachine():
        while l < len(blanktape) + 1:
            mconfigb()
            mconfigc()
        return blanktape

print turingmachine()
4

3 に答える 3

0
def function(input):
    global globvar
    ....

関数ごとに宣言する必要があります。ただし、すべての作成をチューリングマシンクラスにラップし、インスタンス変数を使用する必要があると思います。

于 2013-03-20T00:02:52.677 に答える
0

あなたが置く必要があります:

global l

関数自体の中で(そして変数の命名規則を再考したいかもしれlませんが、良い名前ではありません)。

例えば:

xyzzy = 1

def fn():
    global xyzzy
    xyzzy = xyzzy + 1
于 2013-03-20T00:03:37.413 に答える