![](/img/trans.png)
[英]Given an array l1,l2,l3 . . . ln create a new array as follow: (l1+ln),(l2+l[n-1]), . . .(l[n/2]+l[n/2+1])
[英]Exhibiting an algorithm that determines if L = L*, given any regular language L
我正在研究成员资格算法,并且正在研究以下特定问题:
展示一种算法,该算法在给定任何常规语言L的情况下,确定L = L *
因此,我的第一个想法是,我们有L *,它是L的Kleene星,并确定L = L *,我们不能仅仅说L是规则的,所以我们知道L *是按定义的,即常规语言家族在关闭星号后关闭。 因此,L将始终等于L *?
我觉得肯定还有很多,我可能还缺少一些东西。 任何帮助,将不胜感激。 再次感谢。
由于L是正规的,因此我们知道L *是按定义的,它表示正则语言族在星号封闭状态下是封闭的。 因此,L将始终等于L *?
否Regular(L) --> Regular(L*)
,但这并不意味着L == L*
。 仅仅因为两种语言都是常规语言并不意味着它们是相同的常规语言。 例如, a*
和b*
都是常规语言,但这并不能使它们成为同一语言。
L != L*
示例是语言L = a*b*
,因此L* = (a*b*)*
。 字符串abab
是L*
一部分,但不是L
一部分。
就算法而言,让我提醒您,常规语言的概念是可以由DFA解析的-对于任何给定的DFA,该DFA都有一个最佳的还原形式。
您所说的含义是错误的。 如果L是规则的,则在Kleene星下的封闭性仅意味着L *又是规则的。 检查L = L *的一种可能性是计算两者的最小自动机,然后检查等效性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.