有限状态机的理论与应用
1. 二进制乘法与有限状态机的局限性
在处理二进制数时,我们可以发现有限状态机在某些情况下存在局限性。例如,对于二进制数 (2^m),它由一个 1 后面跟着 (m) 个 0 表示(如 (2^3 = 1000))。在 (t_1) 到 (t_{m + 1}) 时间内,机器接收输入,并且在此期间机器一直输出 0。到 (t_{m + 2}) 时,输入停止,机器从 (t_{m + 2}) 到 (t_{2m}) 输出先 0 后 1。
在 (t_{m + 1}) 到 (t_{2m}) 时间段,没有输入给机器,但机器仍有输出。由于 (m > n),根据有限状态机的定义,输出必须是周期性的,且周期必须小于 (m)。然而,我们并没有得到任何重复的输出序列,所以使用有限状态机无法设计两个任意大的二进制数的乘法。
下面是一个示例表格,展示了时间、输入和输出的关系:
| 时间 | (t_{2m + 1}) | (t_{2m}) | … | (t_{m + 1}) | (t_{m}) | … | (t_{2}) | (t_{1}) |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 第一个数 | 1 | 0 | … | 0 | 0 | … | 0 | 0 |
| 第二个数 | 1 | 0 | … | 0 | 0 | … | 0 | 0 |
| 结果 | 1 | 0 | … | 0 | 0 | … | 0 | 0 |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



