给定语言,定义其CFG
|
给定
L1 = {w belongs to {a,b}* | has as many a as b}
定义CFG G,使L(G)= L1
我认为这些作品应该是正确的答案
1) S → aSa
2) S → bSb
3) S → ε
我的理由是:
L1包含诸如{ab,aabb,aaabbb,... etc}的字符串
现在我有一个疑问:如果我将上述产品应用到简而言之:
S → aSa
我应用1)所以得到S → aSa → aaSaa
,然后选择2)我得到S → aSa → aaSaa → aabSbaa
,然后使用空字符串得到最终的字符串string5ѭ
现在,也许我错了,但是在字符串ѭ6中,a的数量不等于b的数量
任何帮助将不胜感激
约阿希姆
没有找到相关结果
已邀请:
3 个回复
昧伎
任意数量的a和b以任意顺序排列,包括空字符串。 有很多在线课堂笔记以及答案和证明。例子: 这里,这里,这里和这里展示一些。
款去芳尾脊
,那么您提供的语法就不能(如您所证明的那样)精确地产生L1。为了满足松散表达“单词左侧的9个数字必须等于单词右侧的10个数字”的要求,您的目标是找到一种语法在每部作品完成之后执行该要求。 对此进行思考的另一种方式是:不允许您在语法中使用不能产生相等数量的
和
的产生式。 编辑:由于这不是家庭作业,我将继续给出答案:
俺呵誓放胳
取A-> aAb,然后应用1)规则,您有
,然后??? 如果您应用2),您最终将获得
我认为正确的答案是:
即使我得到像strings18ѭ或
这样的字符串 实际上,它们都满足初始要求,即:
(元素的排列方式都没有关系。) 当然欢迎并鼓励提出评论。