Closed. This question needs to be more focused. It is not currently accepting answers. Learn more
想改进这个问题吗?更新问题,使其只关注一个问题editing this post
语言都是(0^i)(1^j) where 2i >= j形式的二进制字符串换言之,最多有两倍于1's然后0's且所有0's的二进制字符串集是前导的。
我的尝试:

S -> 0S | T

T -> 0T1 | U

U -> 0U11 | epsilon

但是,这在string 0011上是不明确的。我该怎么解决?

最佳答案

你差不多有了,只要一点零钱:

S -> 0S | T
T -> 0U1 | U
U -> 0U11 | epsilon

这确保了一定数量的1只能以一种方式产生。然后使用规则S->0S生成仍然必需的0S。

10-01 10:52