提供生成奇数长度语言的上下文无关语法 {w = 0*1* : |w|很奇怪}
Provide a context-free grammar that generates odd length language {w = 0*1* : |w| is odd}
提供上下文无关语法,在
上生成以下语言
Σ = {0,1}: {w = 0*1* : |w|是奇数}
我的解决方案:
S->AB|0|1
A->0A|^
B->1B|^
但是使用这个语法我们可以创建偶数个字符串。
我想要生成 L = {0,1,000,111,001,011,00000,11111,00001,00011....}
奇数是奇数和偶数之和,所以语言中的句子要么是奇数个 0 后跟偶数个 1,要么是偶数个 0 后跟奇数的数量。此外,奇数是偶数加一;如果我们在前面的描述中进行替换,我们会得到 "an even number of 0s followed by either 0 or 1, followed by an even number of 1s"。由于每个偶数都比偶数多 0 或 2,所以我们最终得到。
S -> A 0 B | A 1 B
A -> ε | A 0 0
B -> ε | B 1 1
或
S -> 0 | 1 | 0 0 S | S 1 1
提供上下文无关语法,在
上生成以下语言Σ = {0,1}: {w = 0*1* : |w|是奇数}
我的解决方案:
S->AB|0|1
A->0A|^
B->1B|^
但是使用这个语法我们可以创建偶数个字符串。
我想要生成 L = {0,1,000,111,001,011,00000,11111,00001,00011....}
奇数是奇数和偶数之和,所以语言中的句子要么是奇数个 0 后跟偶数个 1,要么是偶数个 0 后跟奇数的数量。此外,奇数是偶数加一;如果我们在前面的描述中进行替换,我们会得到 "an even number of 0s followed by either 0 or 1, followed by an even number of 1s"。由于每个偶数都比偶数多 0 或 2,所以我们最终得到。
S -> A 0 B | A 1 B
A -> ε | A 0 0
B -> ε | B 1 1
或
S -> 0 | 1 | 0 0 S | S 1 1