先决条件–图灵机
任务 :
我们的任务是设计一个数量相等的a和b的图灵机。
分析 :
在这里,分析该字符串由相等数目的a和b组成的主要事情可以是4种类型–
这里的“ n”是a或b的计数。
a) a^n b^n like aabb
b) b^n a^n like bbaa
c) (ab)^n like abab
d) (ba)^n like baba
例子 :
Input-1 : aabb
Output : Yes
Input-2 : bababa
Output : Yes
Input-3 : aabbbb
Output : No
Input-4 : aaabbaa
Output : No
方法 :
- 我们必须从左到右扫描输入。
- 将扫描中的第一个“ a”和第一个“ b”转换为“ X”,然后在第二个转换中将第二个“ a”和第二个“ b”转换为“ X”,依此类推。我们必须重复该过程,直到将所有的a和b都转换为’X’。
- 在“ a”和“ b”之间扫描的字符将不会更改。
让我们通过使用字符串“ aabb”来理解这种方法–
- 从左侧扫描输入。
- 我们的字符串看起来像这样–
- 现在我们看到我们在第一个位置得到了第一个“ a”,在第三个位置得到了第一个b。我们将这些“ a”和“ b”转换为“ X”。
现在,字符“ a”介于“ a”和“ b”之间。因此,它将保持不变。当我们读取第一个b时,我们将指针向左移动。指针将向左移动,直到获得Blank(B)。现在我们的字符串看起来像这样–
- 我们的指针指向空白(B)。我们再次从左到右扫描输入,并将第二个“ a”和第二个“ b”转换为“ X”。当我们读取第二个b时,我们将指针向左移动。指针将向左移动,直到获得Blank(B)。现在我们的字符串看起来像这样–
- 我们重复此过程,直到所有a和b都转换为X。
- 如我们所见,我们将所有的a和b都转换为’X’。因此,我们的机器将停止运转。
- 当我们分析此过程时,我们看到将a和b成对转换为X,即在点3中,将a和b的第一次出现转换为X,然后在点4中,将a和b的第二次出现转换为X。然后存在不相等的数字b,那么在这种情况下,ou字符串中将剩下一些a或b,否则所有字符都将转换为X。因此这将给我们一个证明我们的条件,即我们的字符串由相等数量的a和b。
图灵机: