📜  门| GATE-CS-2006 |问题29

📅  最后修改于: 2021-06-29 01:59:38             🧑  作者: Mango

如果s是(0 + 1)*之上的字符串,则让n 0 (s)表示s中的0数,而n 1 (s)表示s中的1数。以下哪种语言不是正常语言?

GATECS2006Q29 7“ />
(A) A
(B) B
(C) C
(D) D答案: (C)
说明:选项(A)和(D)中的语言是有限的,因此两个选项均被消除。

对于选项A:
有没有。 3位素数。每个有限集都有一个FA。因此,FA是可能的。

对于选项D:
7的可能余数为0到6,5的可能余数为0到4。使用35个状态,可以制成FA。

对于选项B:
我们可以有6个状态(包括1个拒绝状态)
状态1:差异为0
状态2:差异为1(大于1秒)
状态3:差异为1(大于0)
状态4:差异为2(大于1秒)
状态5:差异为2(更多0s)
状态6:拒绝差异大于等于3的状态

假设字符串是000101
扫描0->状态3
扫描0->状态5
扫描0->拒绝(因为差异现在为3)

同样,如果我们尝试输入字符串:010100,则将接受该字符串。这个问题的测验