チャレンジ! アルゴリズムA 解答

こんなふうに計算します。まず、●に左から順に番号を付けます。正確には、出て行ってる矢印が無いものを1つずつ取り、その順番に番号を付けます。このルート図はぐるぐる回り続けるルートがないので、必ずこういう順番付けができます。茶色の●は番号0とします。

challenge2b.png (11409 バイト)

次に、番号の小さい順に、「茶色の●までいくつルートがあるか」を計算していきます。1番は出口が一つ、直接茶色につながっているので、一通り。2番は直接茶色に行くか、1番を通るかの2通り。図に書いてみると、

challenge2c.png (22429 バイト)

こうなります。1番2番は計算したので黄色にして、中にルートの数を赤で書き込みました。

次に3番を調べます。ここは、直接行くか、あるいは2を経由するか。2番から茶色へは2通りの行き方がありますので、直接+2通り、で3通り。4番は2通りルートがある●と、1通りルートがる●に行けるので、合計で3通り。

challenge2d.png (25387 バイト)

この調子で5番、6番を計算します。5番は3通り、2通り、6通りの頂点に行けるので、合計11通り、6番は3通りと11通りで、、、と計算を続けます。

challenge2e.png (27213 バイト)

このように計算を続けて、最後まで行くと、このようになります。

challenge2f.png (34371 バイト)

合計87通り。意外と沢山あったと思いませんか? 右から左に、順番にルートの数を求めることで、各●の計算がお隣の合計を取るだけで良くなっている、っていう所がミソです。わかりました???

 

 宇野毅明のホームページへ          情報学研究所のホームページへ