【发布时间】:2011-11-04 20:15:08
【问题描述】:
在阅读一本书时,我有这个疑问。
上面提到了
L = {s ∈ (0+1)* | n0(s) mod 7 = n1(s) mod5 =0} 是正则 其中 n0(s) = s 中 0 的数量,n1(s) = s 中 1 的数量
还提到了
L = {s ∈ (0 + 1)* | d(s) mod 5 =2 和 d(s) mod 7 !=4 } 不规则(甚至不是上下文无关的,但它是递归的) 其中 d(s) = s 的十进制值(例如 d(101) = 5)
为什么会这样?是因为 DFA 没有内存来存储(记住)s 的十进制值吗?但在那种情况下,第一种语言怎么会被赋予正规的呢?
【问题讨论】:
-
@nightcracker:不,不应该。请查看 ctheory 的常见问题解答。
-
应该在 Math.SE 上。
-
您似乎打算将 d(s) 作为 二进制 数的 s 值,与十进制无关。
标签: regular-language dfa