私は実際にそれを持っているとかなり確信していますが、それは42の構築ルールを持っており、うまく一般化されていません。より少ない構築ルールでそれを行うにはどうすればよいですか?
言語は{a、b} *で、aの数はbの数の5倍です。
言語{a^n(連結)b ^ m; m=5n}それはただ
S = aSbbbbb | λ
しかし、キャラクターが任意の順序になっていると、私は迷子になります。
私は実際にそれを持っているとかなり確信していますが、それは42の構築ルールを持っており、うまく一般化されていません。より少ない構築ルールでそれを行うにはどうすればよいですか?
言語は{a、b} *で、aの数はbの数の5倍です。
言語{a^n(連結)b ^ m; m=5n}それはただ
S = aSbbbbb | λ
しかし、キャラクターが任意の順序になっていると、私は迷子になります。
まず、文の文字数が他の文の 5 倍である場合、常に のようになることに注意してくださいaaabaabaaaaa
。したがって、1つの文はaaaaab
またはになりaaabaa
ます。もう 1 つの観察事項は、 を追加するたびに、b
5a
文字を追加する必要があることです。
次の文法には、実際に文字数の 5 倍のa
文字数がありb
ます。
S = AS | λ
A = Baaaaa | aBaaaa | aaBaaa | aaaBaa | aaaaBa | aaaaaB
B = bS | Sb
S
空 (要件を満たす) か のどちらかから始めますA
。
のルールでA
は、少なくとも 5a
文字とB
. B
では、配置b
してそこで停止するか ( に空の文字列を選択することにより)、または ( に を選択することにより)S
再び開始することができます。これにより、常に文字数の 5 倍の文字数を配置することが保証されます。A
S
a
b
最後に、この文法は簡単に文法に一般化できますが、n
( rule を単純に拡張することにより) 1 つの文字の何倍もの文字を含める必要がありますA
。