编写程序的时候,有时候需要程序根据输入的数据给予相应的输出,有时候不需要程序记住所有的输入数据,就是无状态机,有时候需要程序记住数据,叫状态机。

有限状态机有两种:

Mealy machine 米利型有限状态机
Moore machine 摩尔型有限状态机

这两种可以相互转换,实际是等同的,只是形式不同,容易混淆。

区别如下:

米利型有限状态机

两种有限状态自动机_有限状态机


图片来自网络

米利机每个状态的输出受所在状态和输入数据共同影响。斜线后面是输出,可以看到输出根据状态和斜线左边的输入而不同。

摩尔型有限状态机

输出只受所在状态影响

两种有限状态自动机_数据_02


图片来自网络

有x, y, z作为输入和a, b, c作为输出

状态只有一个固定输出,虽然下一个状态会根据输入不同而不同,但当前状态的输出只有一个。