不等符号数的上下文无关文法
Context Free Grammar for unequal number of symbols
我知道如何构建具有相同数量的两个给定元素的上下文无关语法,即。如果我们使用 {0,1}
S->SS
S->0S1
S->1S0
S->ε
然而,我正在努力寻找一种方法来构建一个语法,该语法具有一个给定数量的元素多于另一个元素。 IE。始终比 1 多两个 0。
有没有人知道如何构建这样的语法?
编辑:(更正)类似以下的强制至少有一个 0 多于 1:
S->T0S | T0T
T->0T1T | 1T0T | ε
所以现在,通过重复相同的模式再添加一个 0 应该不会太难...
执行以下语法可以解决问题:
S->T0S | T0T
T->0T1T | 1T0T
T->U0T | U0U
U->0U1U | 1U0U | ε
我想出了一个很好的答案:
S->P0P0P
P->PP
P->0P1
P->1P0
P->ε
它应该能得到比 1 多两个 0 的字符串,并且可以很容易地扩展到更大的数字。
我知道如何构建具有相同数量的两个给定元素的上下文无关语法,即。如果我们使用 {0,1}
S->SS
S->0S1
S->1S0
S->ε
然而,我正在努力寻找一种方法来构建一个语法,该语法具有一个给定数量的元素多于另一个元素。 IE。始终比 1 多两个 0。 有没有人知道如何构建这样的语法?
编辑:(更正)类似以下的强制至少有一个 0 多于 1:
S->T0S | T0T
T->0T1T | 1T0T | ε
所以现在,通过重复相同的模式再添加一个 0 应该不会太难...
执行以下语法可以解决问题:
S->T0S | T0T
T->0T1T | 1T0T
T->U0T | U0U
U->0U1U | 1U0U | ε
我想出了一个很好的答案:
S->P0P0P
P->PP
P->0P1
P->1P0
P->ε
它应该能得到比 1 多两个 0 的字符串,并且可以很容易地扩展到更大的数字。