2

これを mathematics stack exchange に投稿しましたが、プログラミングに関連しているので、誰かがここで助けてくれるのではないかと思いました.

私は L-Systems に関するサブジェクト ガイドに取り組んでおり、次のアルファベット A = {a, b, c} を持っています。イニシエータは文字列 "a" で、置換規則は a → ba、b → ccb、c → a です。

スタディ ガイドでは、最初の 5 世代を次のように指定しています。

[a] → [ba] → [ccba] → [acba] → [aaba] → [aaccba]

私は一生、これがどのように機能するかを理解できません。交代の順番についてのルールはありませんが、私の講師は、これに到達することは可能であると言っています.

誰にもアイデアはありますか?

4

1 に答える 1

3

あなたの例では、彼らは各ステップで1つの置換のみを行っており、後のルールが前のルールよりも優先されているように見えます。これは古典的なLシステムのバリエーションかもしれませんが、私はそれがそのように行われるのを見たことがありません。Lシステムのルールは、世代ごとにすべてのシンボルに適用されることになっています。これらのルールの正しい拡張(次世代がどのシンボルから来たかを示すために追加されたスペース)は次のようになります。

a
ba
ccb ba
a a ccb ccb ba
ba ba a a ccb a a ccb ccb ba
ccb ba ccb ba ba ba a a ccb ba ba a a ccb a a ccb ccb ba
于 2012-02-23T18:48:32.183 に答える