如何在一组 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,因为只有这样的字符串是0110。特别是我对 N(k).

的递归关系感兴趣

对于k>=3,循环是N(k) = 2*N(k-3) + N(k-2),边界条件是N(0)=N(1)=0N(2)=2

原因是给定一个可接受的字符串 w(可接受的我的意思是 DFA 接受的字符串),您可以在最终状态或将 010001(长度均为 3)添加到最终状态的 "remain";复发直接来自这些观察结果(想想看)。

例如,这是自动机接受的前几个长度为 k=2,3,...,7 的字符串:

  • 对于 k=2,解是 0110
  • 对于 k=3 没有解决方案。
  • 对于 k=4,解是 01111011
  • 对于 k=5,解是 01001010101001010001
  • 对于 k=6,解是 011111101111
  • 对于 k=7,解是 0100111010101110010111000111011100101110101011001, 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.