理解正式语言中的Σ*和Σ

时间:2012-07-27 15:09:02

标签: automata formal-languages computability

如果我有Σ={a}Σ*有哪些字词?

Σ*= {a,aa,aaa,aaaa.....}

谢谢

4 个答案:

答案 0 :(得分:2)

它有空字符串,你没有提到它,它也包含所有长度的a序列。

您可以在http://en.wikipedia.org/wiki/Kleene_star找到更多信息。

答案 1 :(得分:2)

如果你的字母是Σ={a}那么 Σ*= {#, a,aa,aaa,aaaa.....}表示所有可能的n* a,包括空字符串# (phi)。产生该序列的另一种方法是使用语法:

S -> S
S -> aS
S -> #

其中#是空字符串。

答案 2 :(得分:1)

*中的Σ*通常表示零次或多次。因此Σ*将包含空字符串以及字母Σ中字母的任意组合。

(由于您的字母只有a,因此Σ*会将a s 组合成空字符串。)

如果您的字母表中包含更多值Σ = {a,b},那么您可以将ab s 组合成空字符串。即Σ* = {phi, a, b, aa, ab, ba, bb, bab, ...(etc)}

答案 3 :(得分:0)

Σ*是任意长度的字符串集合,您可以通过连接从Σ(包括无)的任意数量的符号来制作。

以下是定义Σ*的一种方式:

Σ^nΣ上长度为n的字符串集。

然后Σ* =Σ^ 0联合Σ^ 1联合......

Σ^0 = {phi}因为phi是长度为0的唯一字符串。因此,无论Σ*是什么,phi总是在Σ