2017-02-26 14 views
0

ありがとうございました!2つの正規表現の交差点

私は学校でオートマタコースを取っています。私の人生は2つの正規表現の交差点を動かすことができません。私はオンラインで見て、ここでは、両方の言語のためにNFAを作成することができ、それらを個別に補完して、和解することができます。

これに続いて、私は次のDFAを見つけてそれから正規表現を見つけるために組合を補完します。これは交叉正規表現です。しかし、それは私が苦労しているこのすべての計算です。

以下の質問があります。ここでは、単にチュートリアルの質問をしないように変更しました。どちらも同じアルファベット:{a,b,c,d}です。

R1 = (a(a+d))*R2 = ((a+b)+a+(a+d))*

は、私が試してみて、それらをよりよく理解するための言語を拡張してみましょう。

思想: R1が空単語(イプシロン)を含み、長さ2の単語及び4 R2は、空の単語が含まれており、その後の交差点言語が6で割り切れなければならない3

長さの単語?

ここから進める方法は本当にわかりません。これが最善の方法であれば誰かが私にNFAを作成させるのを手伝ってください。私はオンラインのNFAジェネレータを使用しましたが、大学のチュートリアルの回答を振り返ると間違いを犯し続けます。副次的に、あなたが計算する正規表現がどのように正しいと証明するでしょうか?

ありがとうございました!

+0

は、R1と同等に '((+ d)は)*'はありませんか?また、それは "補完"です。 – melpomene

+0

ああ、良い点。今すぐ最終的な広告を削除します。ありがとうございました。 – user62622

+0

私はちょうど私があなたの記法を理解していないことに気づいた。 '+'はどういう意味ですか? – melpomene

答えて

0

R1のためのシンプルなDFAがあります:

DFA for R1

R2 =(| B | D)* @melpomeneは、文字、BまたはDで任意の単語を意味彼のコメントで言ったようにそうR2のDFAは明らかである:

eDFA for R2

交点がR1(R2は、BまたはDですべての本体であるように)

WでありますEこのように、このDFAを完了することができます

DFA for intersection