如何在一组 q 个状态上为给定的 DFA 提出递归方程?
How to propose a recurrence equation for a given DFA over a set of q states?
我正在尝试解决以下问题 2 link:Check out Q.2。
我感兴趣的是长度为 k
的二进制字符串的数量 N(k)
被以下确定性有限自动机接受(来源:URL)。
例如N(2)=2
,因为只有这样的字符串是01
和10
。特别是我对 N(k)
.
的递归关系感兴趣
对于k>=3
,循环是N(k) = 2*N(k-3) + N(k-2)
,边界条件是N(0)=N(1)=0
和N(2)=2
。
原因是给定一个可接受的字符串 w
(可接受的我的意思是 DFA 接受的字符串),您可以在最终状态或将 010
或 001
(长度均为 3)添加到最终状态的 "remain";复发直接来自这些观察结果(想想看)。
例如,这是自动机接受的前几个长度为 k=2,3,...,7
的字符串:
- 对于 k=2,解是
01
、10
。
- 对于 k=3 没有解决方案。
- 对于 k=4,解是
0111
、1011
。
- 对于 k=5,解是
01001
、01010
、10010
、10001
。
- 对于 k=6,解是
011111
、101111
。
- 对于 k=7,解是
0100111
、0101011
、1001011
、1000111
、0111001
、0111010
、1011001
, 1011010
.
我们可以看到递归正确地计算了解决方案的数量:
- N(3) = 2*N(0) + N(1) = 2*0 + 0 = 0.
- N(4) = 2*N(1) + N(2) = 0+2 = 2.
- N(5) = 2*N(2) + N(3) = 2*2 + 0 = 4.
- N(6) = 2*N(3) + N(4) = 2*0 + 2 = 2.
- N(7) = 2*N(4) + N(5) = 2*2 + 4 = 8.
我正在尝试解决以下问题 2 link:Check out Q.2。
我感兴趣的是长度为 k
的二进制字符串的数量 N(k)
被以下确定性有限自动机接受(来源:URL)。
例如N(2)=2
,因为只有这样的字符串是01
和10
。特别是我对 N(k)
.
对于k>=3
,循环是N(k) = 2*N(k-3) + N(k-2)
,边界条件是N(0)=N(1)=0
和N(2)=2
。
原因是给定一个可接受的字符串 w
(可接受的我的意思是 DFA 接受的字符串),您可以在最终状态或将 010
或 001
(长度均为 3)添加到最终状态的 "remain";复发直接来自这些观察结果(想想看)。
例如,这是自动机接受的前几个长度为 k=2,3,...,7
的字符串:
- 对于 k=2,解是
01
、10
。 - 对于 k=3 没有解决方案。
- 对于 k=4,解是
0111
、1011
。 - 对于 k=5,解是
01001
、01010
、10010
、10001
。 - 对于 k=6,解是
011111
、101111
。 - 对于 k=7,解是
0100111
、0101011
、1001011
、1000111
、0111001
、0111010
、1011001
,1011010
.
我们可以看到递归正确地计算了解决方案的数量:
- N(3) = 2*N(0) + N(1) = 2*0 + 0 = 0.
- N(4) = 2*N(1) + N(2) = 0+2 = 2.
- N(5) = 2*N(2) + N(3) = 2*2 + 0 = 4.
- N(6) = 2*N(3) + N(4) = 2*0 + 2 = 2.
- N(7) = 2*N(4) + N(5) = 2*2 + 4 = 8.