0

注意:不确定这是否是此问题的正确站点。我在这里找到了其他有限自动机理论问题,所以在这里发布。

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

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
4

2 回答 2

1

您混淆了两个不同的概念:语言/字符串和字母/符号。

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

你说 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 星)的含义被重载:

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

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

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

于 2018-10-04T19:17:49.203 回答
1

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

“猫”的长度是 3

"" 的长度为 0

“猫”的长度是 4

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

在这种情况下,“aa”被认为是 1 个字符而不是 2 个字符。

S2 是 4 个字符,因为“aa”被认为是 1 个字符

有关更多详细信息,您可以参考此链接:

https://bilalamjad.net/automata-alphabets-and-strings/
于 2019-03-14T18:44:13.553 回答