数学A / 場合の数
通行止めのある最短経路
問題
横に4区画、縦に3区画の格子状の道路がある。左下の A から右上の B まで、右または上にだけ進んで最短で行く。ただし、A から右へ2区画・上へ1区画進んだ交差点 P から、その右どなりの交差点 Q(P から右へ1区画)へ向かう道が工事中で通れない。この工事区間を通らない最短経路は何通りあるか。
ヒントを見る
『 の道が通れない』は、全経路から『 を通ってしまう経路』を引く。その経路数は と の経路数の積。
解答・解説
方針
「ある道(辺)を通れない」問題は、裏返して数えるのが速い。
全体の最短経路から、「その工事区間を通ってしまう経路」を引けばよい。
工事区間 P→Q を通る経路は、P で必ずこの1歩を踏むので、A→P の経路と Q→B の経路を自由に組み合わせたものすべてだ。このかけ算を全体から引く。
解答
⓪ 発想 — どう考え始めるか。 通れない辺がある問題だ。
その辺を避ける経路を正面から数えると、回り道の場合分けが増える。逆に、全体から「その辺を通る経路」を引くほうが速い。
その辺を通る経路は、 の 歩を必ず踏む。だから前半 と後半 に切れて、かけ算で数えられる。
禁止条件を、補集合と分割のかけ算で処理する合わせ技だ。
全経路数: A から B へは右4区画・上3区画なので
工事区間 P→Q を通る経路: この道を通る経路は、必ず「A→P と進み、P→Q の1歩を踏み、Q→B と進む」形になる。P は A から右2・上1、Q は右3・上1の場所だ。
- A → P: 右2区画・上1区画なので 通り
- Q → B: 残り右1区画・上2区画なので 通り
P→Q の1歩は決まっているので、前半3通りと後半3通りの組合せで 通りがこの工事区間を通る。
工事区間を通らない経路: 全体から引いて
まとめ:「特定の道を通らない」を最初から数えると、その道を避ける回り道を場合分けすることになって大変だ。『通ってしまう経路』のほうが(1歩が決まっているぶん)数えやすいので、裏返して引くのが得だ。
発展 — 一歩先へ。 別解では、全経路を「列 から へどの高さで移るか」で分類して足した。この足し算は、二項係数の積の和 になり、値は全経路 に等しい。
二項係数の積を足すと つの二項係数にまとまる、というヴァンデルモンド型の恒等式(畳み込み)の一例だ。経路を途中の か所で切って前後に分けるたびに、この形が現れる。
禁止された 本の辺は、この和からちょうど 項()を落とすことに当たる。数え上げを和の形にしておくと、禁止や条件を「項を消す」操作として扱える。
26通り
別解
別解 — 列の境目を「どの高さで越えるか」で数える(直接足し上げるルート)。 引き算を使わず、通ってよい経路を正面から足し上げる。
どの経路も、 の列から の列へ移る右向きの 歩を、ちょうど一度だけ踏む。その 歩の高さ は のどれかだ。
工事中なのは高さ の 歩、すなわち 。だから で越える経路だけを数えればよい。
高さ で越える経路の数は、 と の積になる。
- :
- :
- :
足すと
全体から引く本解と同じ 通りに、こんどは足し算だけでたどり着く。
ポイント
- 「特定の道(辺)を通れない」→ 全体 − その道を通る経路(裏返して数える)
- 辺 P→Q を通る経路 = (A→P) × (Q→B)(その1歩は決まっている)
- 避けて数える(正面)より、通る場合を引くほうが速い
よくある間違い
- 工事を「点 を通らない」と読み違える(通れないのは辺で、点 自体は通ってよい)。
- (右 ・上 )や (右 ・上 )の区画数を数え違えて経路数を誤る。
- 禁止された辺を避ける回り道を正面から場合分けし始め、場合が増えて収拾がつかなくなる。