写一个文法 使其语言是奇数的集合, 且每个奇数不以 0 开头
时间: 2024-03-31 09:35:09 浏览: 48
以下是一个满足要求的文法:
S -> A1 | A3 | A5 | A7 | A9
A -> 1B | 3B | 5B | 7B | 9B
B -> 0A | 1A | 2A | 3A | 4A | 5A | 6A | 7A | 8A | 9A | ε
解释一下:
- S 是起始符号,它可以生成以 1、3、5、7、9 开头的奇数。
- A 是一个帮助符号,它可以生成以 1、3、5、7、9 结尾的奇数。
- B 是另一个帮助符号,它可以生成以 0、1、2、3、4、5、6、7、8、9 结尾的任意数,或者空串(ε)。
因此,我们可以通过 S 生成一个奇数的开头,然后用 A 生成一个奇数的结尾,保证这个奇数的开头和结尾都是奇数。同时由于 B 的存在,我们可以在中间添加任意数量的数字,保证这个奇数不以 0 开头。
相关问题
写一个文法,使其语言是奇数集,且每个奇数不以0开头。
非常感谢您的提问!根据您的要求,我为您提供以下文法:
S → 1 A | 3 A | 5 A | 7 A | 9 A
A → 0 B | 1 B | 2 B | 3 B | 4 B | 5 B | 6 B | 7 B | 8 B | 9 B
B → 0 A | 1 A | 2 A | 3 A | 4 A | 5 A | 6 A | 7 A | 8 A | 9 A | ε
这个文法的语言是所有以1、3、5、7或9开头的奇数。同时,这个文法还保证了每个奇数不以0开头。希望能够满足您的需求。
编译原理写出一个文法,使其语言是奇数集,且每个奇数不以0开头
S -> 1 | 3 | 5 | 7 | 9 | A
A -> 1B | 3B | 5B | 7B | 9B
B -> 0B | 1B | 3B | 5B | 7B | 9B | ε
解释:
- S表示语言的起始符号,可以推导出1、3、5、7、9和A。
- A表示一个奇数,它可以由1、3、5、7、9和一个以1、3、5、7、9开头的偶数(B)组成。
- B表示一个以1、3、5、7、9开头的偶数,它可以由0、1、3、5、7、9和自身递归组成。其中ε表示空串。
这个文法可以生成所有奇数,因为每个奇数都可以由1、3、5、7、9和一个偶数构成,而偶数可以由0或者一个以1、3、5、7、9开头的偶数构成。同时,由于每个奇数都不以0开头,因此生成的所有字符串都满足要求。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)