拉胡尔
当句柄处于“关闭”状态时,程序不应写入连接句柄。开始时,连接将处于“已连接”状态,但当“断开连接”事件后跟“写入”时,它可以移动到“错误”状态。“重新连接”事件将连接移回“连接”状态,在该状态下允许“写入”操作。多次断开连接、重新连接和写入是多余的,这意味着第二次连续操作无效。
将其建模为正则表达式和 DFA?
我认为 DFA 有 4 种状态:连接、断开连接、写入、错误以及来自它们的三种可能的移动(连接、写入和断开连接),但不知道正则表达式。
帕特里克·豪
我读起来略有不同,有三种状态:
- 打开
- 关闭
- 错误
和三个字符/过渡
- 写
- 断开
- 重新连接
DFA 为
这里我假设我们不能让套接字保持打开状态,所以只有closed
一个接受状态
我们可以忽略error
(没有办法摆脱error
状态,因为我们想让这些字符串失败)
假设我们从open
状态开始,需要接受任意数量的write
和reconnect
转换,然后一个或多个disconnect
转换断开
[wr]*d+
但是我们也可以从断开连接状态重新连接。请注意,上面接受r
作为第一个字符。我们最终的正则表达式是
([wr]*d+)+
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句