4

計算理論のコースのメモをいくつか見直していますが、次のステートメントを表示するのに少し行き詰まっており、誰かが説明を手伝ってくれることを望んでいました:)

A を正規言語とする。言語 B = {ab | a は A に存在し、b は A に存在しない*} なぜ B は正規言語なのですか?

いくつかの点は私には明らかです。b が単なる定数文字列である場合、これは自明です。a が A にあり、b が文字列であることはわかっているため、通常の言語は和集合の下で閉じられているため、これら 2 つの文字列を受け入れる言語の和集合は明らかに規則的です。ただし、 b が定数であるかどうかはわかりません。そうかもしれませんし、もしそうなら、これは実際には問題ではありません。意味が分からなくて困っています。ありがとう!

4

3 に答える 3

6

構成によって証明できます: B を認識する正規表現を与えてください。正規言語のクラスは、共用体、連結、スター、補数で閉じられています。

于 2010-04-11T04:13:29.043 に答える
4

問題のaandbは定数文字列ではなく任意の文字列であり、B は文字列の先頭が A にあり、文字列の末尾が A にない文字列の言語です。Raが言語 A を認識する正規表現である場合Ra、「<code>not Ra」の正規表現を連結したものが言語 B を認識する正規表現です。B は正規表現で認識できるので正規言語です。 .

編集:質問のBの定義の最後にあるAの後の星を最初に見逃しました。これを考慮して、正規表現の認識する部分にbスターも含めます。

于 2010-04-11T04:07:04.067 に答える
0

B は、入力「b」が現れたら終了する言語であるため、通常の言語です。与えられた言語 B の正規表現を a*b として書くことができます

于 2016-04-19T14:27:13.833 に答える