rozwiazanie zadania indywidualnego 207
This commit is contained in:
parent
d428ccfa51
commit
f5cda39879
42
automata/Task207.py
Normal file
42
automata/Task207.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
from automata.deterministic_automaton import DeterministicAutomaton
|
||||||
|
|
||||||
|
|
||||||
|
def three_automaton():
|
||||||
|
a = DeterministicAutomaton()
|
||||||
|
|
||||||
|
state_i = a.add_state()
|
||||||
|
state_only_0 = a.add_state()
|
||||||
|
state_leading_zeroes = a.add_state()
|
||||||
|
state_0 = a.add_state()
|
||||||
|
state_1 = a.add_state()
|
||||||
|
state_2 = a.add_state()
|
||||||
|
|
||||||
|
a.mark_as_initial(state_i)
|
||||||
|
a.mark_as_final(state_0)
|
||||||
|
a.mark_as_final(state_only_0)
|
||||||
|
|
||||||
|
add_transitions(a, state_i, "0", state_only_0)
|
||||||
|
add_transitions(a, state_i, "147", state_1)
|
||||||
|
add_transitions(a, state_i, "258", state_2)
|
||||||
|
add_transitions(a, state_i, "369", state_0)
|
||||||
|
|
||||||
|
add_transitions(a, state_only_0, "0123456789", state_leading_zeroes)
|
||||||
|
|
||||||
|
add_transitions(a, state_0, "0369", state_0)
|
||||||
|
add_transitions(a, state_0, "147", state_1)
|
||||||
|
add_transitions(a, state_0, "258", state_2)
|
||||||
|
|
||||||
|
add_transitions(a, state_1, "0369", state_1)
|
||||||
|
add_transitions(a, state_1, "147", state_2)
|
||||||
|
add_transitions(a, state_1, "258", state_0)
|
||||||
|
|
||||||
|
add_transitions(a, state_2, "0369", state_2)
|
||||||
|
add_transitions(a, state_2, "147", state_0)
|
||||||
|
add_transitions(a, state_2, "258", state_1)
|
||||||
|
|
||||||
|
return a
|
||||||
|
|
||||||
|
|
||||||
|
def add_transitions(a, state_from, chars, state_to):
|
||||||
|
for ch in chars:
|
||||||
|
a.add_transition(state_from, ch, state_to)
|
Loading…
Reference in New Issue
Block a user