小证明题 编译原理-->题目原型:
来源:互联网 发布:java仓库管理系统源码 编辑:程序博客网 时间:2024/05/16 01:52
编译原理-->题目原型:
1,证明:即时通讯 用下面文法生成的所有二进制串的值都能被3整除(提示:对语法分析树的节点使用数学归纳法)。
num -> 11 | 1001 | num 0 | num num
2,上面文法是否能生成所有能被3整除的二进制串?
即时通讯:http://www.nanshan.biz/forum-38-1.html
1、分析:该文法的终止符集为{11,1001,0},非终止符集为{num},起始符号为num,规则集{num->11,num->1001,num->num 0,num->num num},由以上文法得到的二进制串,转换成抽象语法树之后,其叶子节点一定是11或者1001,而如果向树的根节点按照规则生成二进制串,则产生的方式有以下两种。
1)num 0
2)num num。
因而,我们只需要证明num 0 和num num的组合可以被3整除即可。
因为假设前者可以被证明,则语法树的任何一个节点都可以被3整除,并且在此基础上,所有组合方式都可以被3整除,故可得到此文法所得到的所有二进制串都可以被3整除。
有了以上分析,那么证明过程非常简单。
证明:step 1:11和1001都可以被3整除(不解释)。
step 2:若组合形式为num 0 ,因为 num 0 = 2 * num,故在step 1的前提下,num 0 的组合可以被3整除。
step 3:若组合形式为num num,设num num为num1 num2 ,且num2为n位二进制串,则num num = num1 num2 = (2的n次方) * num1 + num2 ,故在step 1的前提下,num num的组合可以被3整除。
step 4:综合step 1 、step 2 、step 3,由上述文法生成的所有二进制串都可以被3整除。
2、答案:非也,最显然的,0就无法由文法导出,另外非显然的,比如21=10101,也无法由文法导出,再比如给21乘个2,即42 = 101010,也无法导出,and so on。
- 小证明题 编译原理-->题目原型:
- 编译原理(一道小证明题)
- 程序编译原理小析
- CAP原理的证明
- 一道线性代数的证明题目
- POC [Proof of Concept] 原型 / 概念证明
- POC [Proof of Concept] 原型 / 概念证明
- 【编译原理】:编译原理大题
- 证明题
- 证明题
- 证明题
- 小题目
- 小题目
- 小题目
- 小题目
- 大端小端的证明
- 最优性原理及其证明
- 关于补码原理的证明
- 23中设计模式总结
- MySQL和PostgreSQL对比
- 【CPU常见故障】
- Flex 与 javascript通信
- imaplib
- 小证明题 编译原理-->题目原型:
- 安家了
- 记录数据库ddl操作触发器
- 字符串常用函数
- JPA加载_删除_更新对象
- 对web.xml当中filter的init-param的当前路径的测试
- Unity脚本的执行顺序
- Solr4.2搜索异常org.apache.solr.client.solrj.SolrServerException: Error executing query
- Apple严控Java太不人性化