我知道如何构建一个上下文无关语法,具有相同数量的两个给定元素,即。如果我们使用{0,1}上下文无关文法不等数目的符号
S->SS
S->0S1
S->1S0
S->ε
不过,我在努力寻找一种方法来构建有一个元素比另一个更一定量的语法。即。始终是两个比1更多的0。 有没有人有任何想法如何构建这样的语法?
我知道如何构建一个上下文无关语法,具有相同数量的两个给定元素,即。如果我们使用{0,1}上下文无关文法不等数目的符号
S->SS
S->0S1
S->1S0
S->ε
不过,我在努力寻找一种方法来构建有一个元素比另一个更一定量的语法。即。始终是两个比1更多的0。 有没有人有任何想法如何构建这样的语法?
我制定了一个很好的回答这个:
S->P0P0P
P->PP
P->0P1
P->1P0
P->ε
它应该出现一个比0多一个0的字符串,并且可以很容易地扩展到更大的数字。
编辑:(校正),如下面的力量的东西至少有一个0比1的更多:
S->T0S | T0T
T->0T1T | 1T0T | ε
所以现在,应该不会太难,重复同样的模式多加一个0 ...
这样做以下语法回答问题:
S->T0S | T0T
T->0T1T | 1T0T
T->U0T | U0U
U->0U1U | 1U0U | ε
但是如何: 0T(开始), 0TT(T> TT规则), 000(T> 0规则), 当然在这种情况下,你会打破规则? –
你是对的!我们不应该改变最后的规则,并重写第一条规则 –
改变这一切!它不是那么简单... –
是的,我确实有一个想法。提示:两个不相等的集合只是两个相等的集合,由一个元素的多个分隔开来。 –