アルファベット {a, b} 上の正規表現 a* が表す言語について、正しいものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 A空列も含む
解説
正解は「空列も含む」です。* はクリーネ閉包(スター閉包)で、直前の要素の0回以上の繰返しを表します。そのため a* は、空列 ε、a、aa、aaa、… という無限個の文字列からなる言語で、0回の繰返しが空列に当たります。「a を1個以上含む文字列だけからなる」は、1回以上の繰返しを表す a+(aa* と同じ)の言語で、空列を含みません。「有限個の文字列からなる」は誤りで、繰返しの回数に上限がないため無限言語です。「b を含む文字列も含む」も誤りで、a* が表す文字列は a だけからなります。正規表現を読むときは、* と + の違い、および空列を含むかどうかに注意しましょう。
- #正規表現
- #クリーネ閉包
この調子でオートマトン・形式言語・計算理論を続けて解く
▶ この科目の連続演習へ進む(10問)