4 ms·
In Python: def L(): global index, tape if index: index -= 1 else: tape.insert(0, 0) def R(): global index, tape
by carapace 2y ago
In Python:
def L():
global index, tape
if index: index -= 1
else: tape.insert(0, 0)
def R():
global index, tape
index += 1
if index >= len(tape): tape.append(0)
table = {
('A', 0): (1, R, 'B'),
('A', 1): (3, L, 'B'),
('A', 2): (1, R, 'Z'),
('A', 3): (2, R, 'A'),
('B', 0): (2, L, 'C'),
('B', 1): (3, R, 'B'),
('B', 2): (1, L, 'C'),
('B', 3): (2, R, 'A'),
('C', 0): (3, R, 'B'),
('C', 1): (1, L, 'B'),
('C', 2): (3, L, 'C'),
('C', 3): (2, R, 'C'),
}
state = 'A'
tape = [0]
index = 0
while state != 'Z':
tape[index], direction, state = table[state, tape[index]]
direction()