J'essaye d'implémenter un NFA en python et j'ai fait quelques progrès mais je suis bloqué car j'ai besoin d'utiliser un tableau 3d et les indices du tableau doivent correspondre à l'état actuel et le caractère actuel à traiter. Je dois utiliser des entiers comme indices du tableau et j'essaye de convertir du type de données de chaîne en int pour ceci. Cependant, j'obtiens l'erreur: "les index de liste doivent être entiers, pas str", n'importe quelle aide sera très appréciée. Voici le code que j'ai écrit jusqu'à présent:Implémentation d'un NFA en Python
"""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 (char)' ne cause pas 'char 'devenir un int. 'int (char)' est un int; 'char' n'est pas affecté. – user2357112