為給定的語言構造正則表示式。


問題 1

編寫接受包含任意數量的 a 和 b 的所有字串的語言的正則表示式。

解答

正則表示式將是:

r.e. = (a + b)*

這將給出集合 L = {E, a, aa, b,bb,ab,ba, aba, bab,.....},a 和 b 的任意組合。

(a + b)* 表示 a 和 b 的任意組合,甚至包括空字串。

問題 2

編寫以 a 開頭但不包含連續 b 的語言的正則表示式。

解答

必須為以下語言構建正則表示式:L = {a, aba, aab, aba, aaa, abab, .....}

上述語言的正則表示式為:

R = {a + ab}*

問題 3

編寫接受所有字串的語言的正則表示式,其中任意數量的 a 後跟任意數量的 b,再後跟任意數量的 c。

解答

眾所周知,任意數量的 a 表示為 a*,任意數量的 b 表示為 b*,任意數量的 c 表示為 c*。根據題目描述,b 出現在 a 後面,c 出現在 b 後面。所以正則表示式可以是:

R = a* b* c*

問題 4

描述以下正則表示式表示的語言 r.e. = (b* (aaa)* b*)*

解答

可以透過找到正則表示式的含義來預測該語言。我們將首先將正則表示式拆分為:

r.e. =(任意數量的 b) (aaa)* (任意數量的 b)

L = {該語言由字串組成,其中 a 以三元組出現,對 b 的數量沒有限制}

更新於: 2021年6月12日

7K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.