2012-02-15 8 views
0

、私はこの質問に来た:式で定義された言語で ていない最小限の長さの文字列を与え、次の正規表現のそれぞれについて最小長


  1. (bb)*(aa)*b*
  2. a*(bab)*∪b∪ab

私は最初のものに役立つと私は2番目を把握できるかどうかを取得だけにしようとするつもりです。 Heres私が知っているもの:Kleene *は0以上の可能な要素を示します。集合の和集合は要素を繰り返さずに集合aと集合bのすべての要素を含む集合である。ラムダを挿入して起動する第一の課題を通じて協力して、私が手:

第一の実行:bbaab
第二:
第三bbbbaabaabbaabbbbaab:

bbbbbbaabaabbaabbbbaabaabbbbaabaabbaabbbbaabbbbbbaabaabbaabbbbaab私が正しくに長さ0の文字列よりもそれをやっている場合を5は言語に含まれていません。私はこれを正しくしていますか?

+0

ヒント:「a」、「b」、および「U」よりも多くの文字があります。 –

+2

最初のケースは長さゼロの文字列にすることができます。 *は0回以上の出現を意味します。したがって、空の文字列を使用してもOKです。 –

+0

bとuより文字数が多いということはどういう意味ですか? *を実行している文字列は可能な文字列であってもかまいませんが、最小の場合は*の代わりに空の文字列λを入れて、生成される最初の文字列はbb [λ] aa [λ]右か? – user1193839

答えて

3

最初の正規表現は、偶数の 'b'(ゼロを含む)で始まり、その後に偶数の 'a(ゼロは大丈夫)が続き、次にいくつか' b 'が続く単語に一致します。

これは、空の文字列が言語で、文字列 "b"であることを意味します。 ただし、文字列 "a"は言語に含まれていません。

したがって、言語に含まれていないすべての最小長文字列は "a"です。


第二の正規表現は、 ""、 "" と "AAに"(*によって(BAB)*)、また上に "B" と "AB" と一致します。 "ba"と "bb"では一致しません。

したがって、最小文字列の長さは2です: "bb"と "ba"。

+0

OPがそれをうまくフォーマットしなかったので、あなたはそれを誤読しました。編集後、正規表現は '(bb)*(aa)* b *'ではなく '(bb)* aab'です。 – Benoit

+0

ええ、ありがとう、答えを更新しました: –

+0

簡略化された2番目の正規表現は* bab + b + abです。これは0を含むいくつかのaから始まり、bab *ヌルストリング)ので、その可能性のあるヌルストリングは言語であるので、λ∪λ∪λ=λである。 空の文字列が使用されていないときに、ユニオンが何をするのか混乱します。第二のものでBBとバはなぜ働かないのですか? – user1193839

関連する問題