数学A / 場合の数
最短経路の数
問題
図のような格子状の道路がある。横に4区画、縦に3区画である。左下の地点 A から右上の地点 B まで、遠回りせずに(右または上にだけ進んで)行く。最短経路は全部で何通りあるか。
ヒントを見る
右へ進む回数と上へ進む回数はどちらも決まっている。最短経路は『→ を何個・↑ を何個、どの順で並べるか』と同じ — 同じ矢印の並べ替え(同じものを含む順列)として数える。
解答・解説
方針
最短経路は図形の問題に見えるが、実は「同じものを含む順列」に化ける。
右へ1区画進むことを「→」、上へ1区画進むことを「↑」と書いてみよう。すると、AからBへの1つの道は、→と↑を並べた記号の列と、ぴったり1対1で対応する。
あとは、その記号の並べ方を数えればよい。
解答
⓪ 発想 — どう考え始めるか。 「右か上にだけ進む」ので、 から へ行くには右に 区画、上に 区画、合わせて必ず 回進む。どんな経路でも、この回数は変わらない。
違うのは順番だけだ。
だから経路は、 を 個、 を 個並べた文字列と 対 で対応する。
道の問題が、同じものを含む順列の問題に化けた。
回のうち、どの 回を上にするかと読めば、 でも同じこと。経路を、記号の列に翻訳する — これがこの問題の発想だ。
AからBへ最短で行くには、右へ4区画、上へ3区画進む必要がある。右への1歩を「→」、上への1歩を「↑」で表すと、1つの道は「→を4個、↑を3個」並べた記号の列で表せる。
たとえば のように、並べる順番が道の形を決める。
だから、求める道の数は「→を4個、↑を3個(合わせて7個)を1列に並べる」同じものを含む順列だ。
矢印は全部で7個(右4回 + 上3回)。これは、はしからはしまで進むのに必ず7歩かかることを表している。「→の数 = 横の区画数、↑の数 = 縦の区画数」を図から正しく読み取るのが出発点だ。
まとめ:組合せの形で書けば、7個の場所から→を置く4か所を選ぶ 、あるいは↑を置く3か所を選ぶ でも同じだ。
発展 — 一歩先へ。 最短経路の数え上げは「問題を、別の言葉に翻訳する」という数学の中心的な手口の実例だ。
道 矢印の列 席の選び方 組合せ
翻訳するたびに、問題は解きやすい形になっていく。もとの「道を数える」は幾何の問題に見えるが、最後は というただの計算になった。難しさは、翻訳の前後で移動しているのだ。
この技は先へ行くほど効いてくる。
- 確率の問題を、場合の数に翻訳する
- 図形の問題を、座標やベクトルに翻訳する
- 漸化式を、等比数列に翻訳する
「これは、何の言い換えか?」と問う癖をつけたい。
なお格子の書き込み法は、コンピュータの動的計画法という手法そのものである。「小さい問題の答えを表に記録し、それを足して大きい問題を解く」— カーナビの経路探索も、文章の類似度計算も、この考え方で動いている。紙の上の という数が、現代の技術と地続きなのだ。
35通り
別解
公式を使わず、交差点に数を書き込んでいく方法がある。地図に直接書き込むだけで答えが出る、目で見える解き方だ。
ルールはたった つ。
「その交差点への行き方の数」「左隣への行き方」「下隣への行き方」
なぜか。ある交差点にたどり着く最後の一歩は、左から来たか、下から来たかのどちらかしかない。だから つを足せばよい。
まず、 のある左端の列と、下端の行に を書く(まっすぐ進むしか行き方がないから、どこも 通り)。あとは左下から順に足していく。
(いちばん下の行が のある行、右上の が である。)
たとえば下から 行目の は、左の と下の を足したもの。 上の行の は、左の と下の を足したもの。足し算だけで、右上に が現れる ✓。
この方法の強みは、 つある。
つ目: 途中に通れない道があっても使える。 「工事中で通れない交差点」があれば、そこに を書き込んで先へ進むだけ。公式は通行止めを扱えないが、書き込み法なら何でも来いである。
つ目: 「必ずこの点を通る」条件も楽勝。 その点までの数と、その点から までの数を掛ければよい。
そして、この表をよく見てほしい。 / / — 斜めに読むと や が現れる。パスカルの三角形が、格子の上に横たわっているのだ。
というパスカルの法則は、まさに「左から来るか、下から来るか」の 択を式にしたものだった。組合せの公式と、格子の足し算は、同じ つの事実の表と裏である。
パスカルの三角形を「意味のない数の並び」として覚えた人は多い。しかしその正体は、道の数え上げだった — こう分かると、数学の風景が少し違って見えるはずだ。
ポイント
- 最短経路 → 「→」と「↑」を並べる同じものを含む順列に置きかえる
- →の数 = 横の区画数、↑の数 = 縦の区画数
- 、どの形で書いてもよい
よくある間違い
- 矢印の数を、区画数ではなく交差点の数で数えてしまう
- 分母を とたし算にする(正しくはかけ算)
- 書き込み法で、左端の列や下端の行に を書き忘れる(端はまっすぐ進むだけで1通り)