「マトリョーシカ」というロシアの民芸品があります。
マトリョーシカは、人形を開けると中に一回り小さい人形が入っており、その人形を開けるともう一回り小さい人形が出てきて…という繰り返しの構造になっています。
これをプログラムで表現するには、単純に大きさを変えた処理を何度も呼ぶ方法もありますが、変わったやり方として「自分自身を呼ぶ」というものがあります。
必要な処理はたった一つ。その処理に以下の情報を持たせます。
- 開始時の情報
→10cm からスタート - 自分を呼び出すための条件
→自分が 3cm 以上 - 呼び出す自分に与える情報
→2cm 小さな自分
この方法を使うと、一つの処理に与える情報を変えるだけで複雑な構造を表すこともできます。
身近な例として、木、ブロッコリー、雪の結晶なども同じやり方で再現できます。
目次
もっと深く学びたい方へ
今回の話は、プログラミング用語では「再帰」と呼びます。
再帰を理解するには少し慣れが必要ですが、うまく使うと複雑な処理を短く書くことができます。
ゲームであればマス目を使った移動範囲の計算処理に使われます。
↓ の記事では再帰を利用した実装をしていますので、よかったら参考にしてみてください。
コメント