Я хочу запрограммировать недетерминированные автоматы, которые принимают строки, заканчивающиеся на '01' с Python.Я хочу отслеживать различные состояния, которые могут покинуть входы.NFA строк, оканчивающихся на '01', следующий: введите здесь описание изображения
Например, если я хочу оценить строку '00101' в Q0 с первым 0Я хочу следить за состоянием Q0 и Q1.До тех пор, пока я не узнал, я создал функцию с NFA в качестве списка и элементов подсписка со значениями False, чтобы нарушить процесс автоматов.Но я не могу понять, как решить проблему взятия двух элементов подсписка, который представляет Q0, и разделить процесс.
def nfa(string):
nfa01l =[ [[0,1],0],[False,2],[False,False]]
while True:
for c in string:
if c == "0" and state == 0:
state = nfa01l[state][0]
elif c == "1" and state == 0:
state = nfa01l[state][1]
elif c == "0" and state == 1:
state = nfa01l[state][0]
elif c == "1" and state == 1:
state = nfa01l[state][1]
elif c == "0" and state == 2:
state = nfa01l[state][0]
elif c == "1" and state == 2:
state = nfa01l[state][1]
Я только начинаю изучать программирование.Я надеюсь, что это правильно объяснено.Спасибо!