有限自动机理论中 kleene 闭包后的字符串长度

String length after kleen's closure in finite-autometa theory

注意:不确定这个问题的网站是否正确。我在这里发现了其他有限自动机理论问题,所以在这里发帖。

假设一种语言是由两个字母定义的

L1 = { aa , b }

我们对它进行 Kleen 闭包处理:

S1 = aab
S2 = aaaabb

现在我的问题很简单了,这两个字符串S1和S2的字符串长度是多少?

根据我的理解,因为字符串长度只能由它使用的字符数决定,而且由于 'aa' 是单个字符,所以两个字符串的字符串长度应该是:

S1 = 2 characters or string of length 2
S2 = 4 characters or string of length 4

根据我老师的说法,每个字符串的字符串长度是

S1 = 3 characters
S2 = 6 characters

您混淆了两个不同的概念:languages/strings 和 alphabets/symbols。

语言是一组字符串。字母表是(非空有限)符号集。字符串是(通常是有限的)符号序列。

你说L1是定义在两个字母上的,但是写成L1 = {aa, b}。所以你可能意味着两件事:

  1. L1 是字母表 {aa, b} 上的一组字符串,其中 aa 和 b 被理解为符号。
  2. L1 是一种包含两个字符串 aa 和 b 的语言,其中 a 和 b 被理解为隐含字母表的符号。

在第一种解释下,S1和S2的长度分别为2个和4个字符。在第二种解释下,S1 和 S2 的长度分别为 3 和 6 个字符。至关重要的是,* (Kleene star) 的含义被重载了:

  1. E*,其中 E 是字母表,是字母表中符号上所有字符串的集合。
  2. L*,其中L是一种语言,是由L中的字符串相互连接而成的所有字符串的集合。

通常,在不引起混淆的情况下,字母表可以被视为与长度为 1 的字符串的(有限、非空)语言本质上相同。

然而,它们不是一回事,放弃这种区别让你(和很多其他人)感到困惑……所以它可能是对可疑价值的简化。

字符串的长度是字符串中包含空格的字符数。 例如:

"cat" 的长度为 3

“”的长度为 0

"cat " 的长度是 4

请注意,空格计入长度,但双引号不算。

在这种情况下,"aa" 被视为 1 个字符而不是 2 个。

S2 是 4 个字符,而 "aa" 被认为是 1 个字符

更多细节可以参考这个link:

https://bilalamjad.net/automata-alphabets-and-strings/