形式言語:偶数のゼロと奇数の1を持つ正規表現



Formal Language Regular Expression With An Even Number Zeros



最初の部分 まず、偶数のゼロと偶数の正規表現を見てください。
まず第一に、あなたは問題について明確にすべきです。
私たちの質問は、 '(00 | 11 |(01 | 10)(00 | 11)*(01 | 10)))*の代わりに' 0偶数1正規表現の偶数は何ですか 'と同等です*偶数を表すことができます0の偶数の正規表現。

バイナリ文字列の0と1の数が次の4つにすぎないと想像してください。



偶数0、偶数1 ------------- 0
偶数0、奇数1 ------------- 1
奇数0、偶数1 ------------- 2
奇数0、奇数1 ------------- 3
次に、状態遷移図を描きます。
画像
次のように表すことができます:(00 | 11 |(01 | 10)(00 | 11)*(01 | 10))*

第二部 偶数のゼロ奇数1正規表現を見てください。
これは、ChenYiyunの問題解決の問題セットに対する答えです。
even_0_even_1→(00 | 11)((01 | 10)(00 | 11)(01 | 10)(00 | 11))
even_0_odd_1→1even_0_even_1 | 0(00 | 11) (01 | 10)even_0_even_1
偶数の0と奇数の1の文字列の場合、最初の文字は0または1になります。
(1)1の場合、残りの部分は0の偶数と1の偶数でなければなりません。
(2)0の場合、00または11の数の後に、01または10が表示され、0の数が偶数で、1の数が奇数であることを確認します。文字列がまだ終了していない場合、余りは偶数の0と偶数の1でなければなりません。
したがって、正しい正式な定義は次のとおりです。
even_0_odd_1→1even_0_even_1 | 0(00 | 11)
(01 | 10)even_0_even_1



参照:(1) https://blog.csdn.net/qq_42689684/article/details/82763075 著者:夏の鼻くそモンスター
(2)クラス回答後のChenYiyunコンパイラの原則