学习自动机python代码
时间: 2023-07-23 14:31:15 浏览: 138
一些python自动化代码
4星 · 用户满意度95%
以下是一个简单的有限状态自动机的Python代码示例:
```python
class State:
def __init__(self, name, transitions):
self.name = name
self.transitions = transitions
def next_state(self, input):
if input in self.transitions:
return self.transitions[input]
else:
return None
class Automaton:
def __init__(self, states, start_state):
self.states = states
self.current_state = start_state
def transition(self, input):
next_state_name = self.current_state.next_state(input)
if next_state_name:
self.current_state = self.states[next_state_name]
def run(self, inputs):
for input in inputs:
self.transition(input)
states = {
'A': State('A', {'0': 'A', '1': 'B'}),
'B': State('B', {'0': 'C', '1': 'B'}),
'C': State('C', {'0': 'A', '1': 'B'})
}
automaton = Automaton(states, states['A'])
automaton.run('0000111100001111')
print(automaton.current_state.name)
```
这个代码示例定义了一个简单的有限状态自动机,用于识别二进制串中连续的1的个数是否为偶数。状态A表示当前连续的1的个数为偶数,状态B表示当前连续的1的个数为奇数,状态C表示当前连续的1的个数为偶数但是已经有一个1被读入。在这个自动机中,输入0会保持当前状态不变,输入1会使当前状态转移到下一个状态,直到最终状态被达到。
阅读全文