Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CFG中的强制规则序列_Java_Algorithm - Fatal编程技术网

Java CFG中的强制规则序列

Java CFG中的强制规则序列,java,algorithm,Java,Algorithm,我正在尝试编写一个以10开头,以10{0,1}结尾的CFG。 但我注意到,为了让它工作,我所写的规则必须以一种特殊的顺序来遵循。 让我举个例子给你看 S -> 10S Rule 1 S -> S10 Rule 2 S -> 1S Rule 3 S -> 0S Rule 4 S -> ε Rule 5 Rule 1 -> 10S -> Rule 2 -> 10S10 -> Rule 3 101S10 -> Rule 4 -> 10

我正在尝试编写一个以10开头,以10{0,1}结尾的CFG。 但我注意到,为了让它工作,我所写的规则必须以一种特殊的顺序来遵循。 让我举个例子给你看

S -> 10S Rule 1
S -> S10 Rule 2
S -> 1S Rule 3
S -> 0S Rule 4
S -> ε Rule 5

Rule 1 -> 10S -> Rule 2 -> 10S10 -> Rule 3 101S10 -> Rule 4 -> 1010S10 -> Rule 5 101010
在这里,我将完美地以10开始,以10结束,但这仅限于规则1在序列中是第一个,并且规则2在结束之前也被考虑,规则5以101010结束

这是写这个CFG的正确方法吗?我的意思是,假设某人开始时:

Rule 1 -> 10S Rule 3 -> 10S1 -> Rule 4 -> 10S01 -> Rule 5 -> 1001.
Now my CFG doesn't hold up because I expected the Rule 2 to be involved to get the string to end with 10.
我是否应该期望我的CFG能够工作,无论首先或最后采用什么规则?这是写CFG的唯一“合法”方式吗?如果它像我的一样(取决于所采取的特定顺序),那么它被认为是错误的

事先非常感谢您的帮助,我很感激