aの数がbの数に等しく、2に等しくなるように、{a、b、c}上の文字列のセットに正規表現を与えます。

Aug 23 2020

有限オートマトンから正規表現までどのように説明しますか?

+を使用するaとbの数が1つ以上ある場合、どのように説明するかはわかっていますが、正確に2にする方法がわかりません。

これまでの私の思考プロセスは次のとおりです。

これらは、2つのaと2つのbを持つ文字列の可能性です:aabb、abab、bbaa、abab、abba、baab。ここでcを追加する必要がありますが、どこに配置してもかまいません-したがって、c *になりますか?

回答

1 StinkingBishop Aug 23 2020 at 22:43

他の人がすでにコメントに入れていることを要約すると、この正規表現は仕事をします:

c*ac*ac*bc*bc*|c*ac*bc*ac*bc*|c*bc*ac*ac*bc*|c*ac*bc*bc*ac*|c*bc*ac*bc*ac*|c*bc*bc*ac*ac*