编写程序的时候,有时候需要程序根据输入的数据给予相应的输出,有时候不需要程序记住所有的输入数据,就是无状态机,有时候需要程序记住数据,叫状态机。
有限状态机有两种:
Mealy machine 米利型有限状态机
Moore machine 摩尔型有限状态机
这两种可以相互转换,实际是等同的,只是形式不同,容易混淆。
区别如下:
米利型有限状态机
图片来自网络
米利机每个状态的输出受所在状态和输入数据共同影响。斜线后面是输出,可以看到输出根据状态和斜线左边的输入而不同。
摩尔型有限状态机
输出只受所在状态影响
图片来自网络
有x, y, z作为输入和a, b, c作为输出
状态只有一个固定输出,虽然下一个状态会根据输入不同而不同,但当前状态的输出只有一个。