📜  设计一个图灵机,使其数量等于a和b

📅  最后修改于: 2021-08-27 16:51:02             🧑  作者: Mango

先决条件–图灵机

任务 :
我们的任务是设计一个数量相等的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”来理解这种方法–

  1. 从左侧扫描输入。
  2. 我们的字符串看起来像这样–

  3. 现在我们看到我们在第一个位置得到了第一个“ a”,在第三个位置得到了第一个b。我们将这些“ a”和“ b”转换为“ X”。

    现在,字符“ a”介于“ a”和“ b”之间。因此,它将保持不变。当我们读取第一个b时,我们将指针向左移动。指针将向左移动,直到获得Blank(B)。现在我们的字符串看起来像这样–

  4. 我们的指针指向空白(B)。我们再次从左到右扫描输入,并将第二个“ a”和第二个“ b”转换为“ X”。当我们读取第二个b时,我们将指针向左移动。指针将向左移动,直到获得Blank(B)。现在我们的字符串看起来像这样–

  5. 我们重复此过程,直到所有a和b都转换为X。
  6. 如我们所见,我们将所有的a和b都转换为’X’。因此,我们的机器将停止运转。
  7. 当我们分析此过程时,我们看到将a和b成对转换为X,即在点3中,将a和b的第一次出现转换为X,然后在点4中,将a和b的第二次出现转换为X。然后存在不相等的数字b,那么在这种情况下,ou字符串中将剩下一些a或b,否则所有字符都将转换为X。因此这将给我们一个证明我们的条件,即我们的字符串由相等数量的a和b。

图灵机: