3

文法を定義するためにEBNFを使用しています。

しかし、順列を定義する必要があるため、行き詰まっています。組み合わせることができる値のセットがありますが、それらは1回だけ使用する必要があり、順序は気にしません。

EBNFでそれを行う方法は?

例:値:a、b、c

可能な組み合わせ:abc、acb、bac、bca、cab、cba

4

1 に答える 1

5

そのようなことは、すべての順列を手動で定義する以外に、(E)BNF で表現することはできません。

values = "abc" | "acb" | "bac" | "bca" | "cab" | "cba" ;
于 2012-07-16T18:33:49.973 に答える