📜  门| GATE-CS-2005 |第53章

📅  最后修改于: 2021-06-28 18:02:40             🧑  作者: Mango

考虑机器M:
GATECS2005Q53
M识别的语言是:
(A) {w∈{a,b} * / w中的每个a后面紧跟两个b’s}
(B) {w∈{a,b} * w中的每个a后面至少跟两个b’}
(C) {w∈{a,b} * w包含子串’abb’}
(D) {w∈{a,b} * w不包含’aa’作为子字符串}答案: (B)
解释:

这里w∈{a,b} *意味着w可以是{a,b} *集合中的任何字符串,并且{a,b} *是由a和b组成的所有字符串的集合(a和b的任何字符串您可以想到),例如null,a,b,aaa,abbaaa,bbbbb,aaaaa,aaaabbbbaabbababab等。

在GATE中经常会问这些类型的问题,要求他们在选项中选择最适合的语言。为了解决这样的问题,有一种更好的方法,我们尝试通过智能地选择测试字符串来消除错误的选项,直到我们剩下一个正确的选项为止。只有托马斯•E字符串(a和b组成),其中在w中每一个后面正好有两个b的,所以如果我们把字符串AB | BB(三级乙等的),那么它会被机器所接受,所以这个选项是错误的。现在我们尝试消除选项(C),它只识别其中w包含子字符串“ abb”的那些字符串(由a和b组成),因此,如果我们采用字符串abbaa(具有子字符串abb),则它不被接受机器,所以这个选项也是错误的。现在我们尝试消除选项(D),它仅识别其中w不包含’aa’作为子字符串的那些字符串(由a和b组成),因此,如果我们将字符串abbaba(’aa’不作为子字符串) ,则它不被机器接受,因此此选项也是错误的。唯一剩下的选项是选项(b),其中每个a in w后面至少有两个b’是正确的,因此答案是选项(B)。

该解决方案由N irmal Bharadwaj提供。

这个问题的测验