-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAutomata2.py
More file actions
35 lines (31 loc) · 1.04 KB
/
Automata2.py
File metadata and controls
35 lines (31 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
automata = {
'estados': {'q0', 'q1', 'q2', 'q3', 'q4'},
'alfabeto': {'0', '1'},
'estado_inicial': 'q0',
'estados_aceptacion': {'q3', 'q4'},
'transiciones': {
('q0', '0'): 'q1',
('q0', '1'): 'q2',
('q1', '0'): 'q3',
('q1', '1'): 'q2',
('q2', '0'): 'q2',
('q2', '1'): 'q4',
('q3', '0'): 'q3',
('q3', '1'): 'q4',
('q4', '0'): 'q4',
('q4', '1'): 'q4'
}
}
def simular_automata(automata, cadena):
estado_actual = automata['estado_inicial']
for simbolo in cadena:
if (estado_actual, simbolo) in automata['transiciones']:
estado_actual = automata['transiciones'][(estado_actual, simbolo)]
else:
return False
return estado_actual in automata['estados_aceptacion']
cadena = input("Ingrese una cadena: ")
if simular_automata(automata, cadena):
print(f'La cadena "{cadena}" es aceptada por el autómata.')
else:
print(f'La cadena "{cadena}" no es aceptada por el autómata.')