파이썬에서 NFA를 구현하려고하지만 일부 진전을 보였습니다. 그러나 3d 배열을 사용해야하고 배열의 인덱스가 현재 상태와 현재 처리 할 문자. 배열의 인덱스로 정수를 사용해야하고 문자열 데이터 형식을 int로 변환하려고합니다. 그러나, 나는 오류가 나타납니다 : "목록 색인은 정수가 아닌 문자열이어야합니다", 어떤 도움을 많이 주시면 감사하겠습니다.Python에서 NFA 구현
글쎄 코드의 나머지를 가정"""Initialize States"""
q0=0
q1=1
q2=2
i=0
finstate=q2 #final state is q2
array=[[[0],[0,1]],[[2],[2]],[[],[]]] #3d array for state transitions
def accepts(state, word):
global i
if i==len(word):
return state==finstate #if last state is final state accept
char=word[i]
i+=1
int(char) #covert char to int
nextstates=array[state][char]
for i in range(len(word)):
if accepts(nextstates, word): #recursion
return True
return False
def main():
string= "01" #sample input
if accepts(q0, string):
print("accepts")
else:
print("rejects")
main()
'INT (문자) 같은 것을해야한다''문자가 발생하지 않습니다 : 여기에 지금까지 작성한 코드는 'int가 될 수 있습니다. 'int (char)'는 int입니다. 'char'는 영향을받지 않습니다. – user2357112