首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解CFG的基本知识

了解CFG的基本知识
EN

Stack Overflow用户
提问于 2016-05-14 21:04:47
回答 2查看 117关注 0票数 0

在Sipser的书中刚刚开始了关于CFL的章节,并且已经不理解基本的内容了。

让这是某些语言的语法:

代码语言:javascript
复制
S -> A0A 
A -> 00A | 11A | 10A | 01A | e

对于这个A0A部分,我真的很困惑。这是否意味着从0开始的左手侧应该总是和右手边一样。这是否意味着00011或000人不在这一语言中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-14 21:21:30

任何S都是任何A的选项,后面是一个文本0,然后是A的另一个选项。每个A都是独立的。

字符串00011在语言中,因为您可以选择两个A(例如),这样第一个是00A,第二个是11A。如果您递归地为两个“剩余”e选择空字符串(A),那么当您将所有东西连接在一起时,就会得到字符串00011

您可以做类似的事情来获得字符串000

票数 0
EN

Stack Overflow用户

发布于 2016-05-14 21:29:51

A转换为空位或两个二进制数,然后A.这意味着A转换为偶数二进制数的任意序列。

S转换成A,然后0,A,这意味着S是转换成偶数的二进制数,然后是0,然后是偶数的二进制数。也就是说,S是中间有0的奇数二进制数的任意序列。

这是否意味着从0开始的左手侧应该总是和右手边一样。

没有,怎么了?两个不同的A可以转换成不同的序列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37231860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档