如果 s 是 (0 + 1)* 上的字符串,则让 n 0 (s) 表示 s 中 0 的数量,n 1 (s) 表示 s 中 1 的数量。以下哪一种语言不是常规语言?
7″ />
(一) A
(乙)乙
(C)丙
(四)丁答案: (C)
解释:选项(A)和(D)中的语言是有限的,所以两个选项都被消除了。
对于选项 A:
有有限没有。 3 位素数。每个有限集都存在一个 FA。因此FA是可能的。
对于选项 D:
7 的可能余数是 0 到 6,而 5 的可能余数是 0 到 4。使用 35 个状态,可以制作 FA。
对于选项 B:
我们可以有 6 个状态(包括 1 个拒绝状态)
状态 1:差异为 0
状态 2:差异为 1(更多 1s)
状态 3:差异为 1(更多 0)
状态 4:差异为 2(更多 1s)
状态 5:差异为 2(更多 0)
状态 6:拒绝差异 >= 3 的状态
假设字符串是 000101
扫描 0 -> 状态 3
扫描 0 -> 状态 5
扫描 0 -> 拒绝(因为现在差异为 3)
同样,如果我们尝试字符串:010100,这将被接受。这个问题的测验