正規表現に関連するこの混乱があります。2セット あればA
、B
ですか(AB)* = A*B*
?
No, (AB)* is not equals to A*B*
(AB)* means ABABABABAB......AB
AB のシーケンス (任意の回数)。
A*B* means AAAA.....BBB......
任意の数の A の後に任意の数の B が続きます。そして、A は B の後に現れることはできません。
交差 - 両方が含まれる{ NULL string, AB }
のみ
例:
仮定: A = xy
、および B = z
(AB)* = xyzxyz.....xyz
A*B* = xyxyxyxy....zzzz....z
交差点- 両方が含まれ{ NULL string, xyz}
ます。
例:
仮定する -
A = {a, b},
B = {c, d}
それで、
(AB)* = ((a + b)(c + d))* , Its language
L = { ac, ab, acbd, acac, .....}
注:この言語のすべての文字列は偶数の長さです!
と
A*B* = (a + b)* (c + d)* , Its language
L = { a, b, c, d, ac, ad, bc, bd, acbd, addb,.........}
注:奇数の長さの文字列も含まれています。
(AB)* = A*B* ?
いいえ、最初は言語です
{void, ab, abab, ababab, ...}
2つ目は言語です
{void, a, b, aa, ab, bb, aaa, ...}