最短経路の総数(平面)、同じものを含む順列の応用(連続、変化の回数)

スポンサーリンク
以下のような横4区画,\ 縦3区画の道路がある. \\[.2zh]   AからBまで最短距離で行く道順の総数を計算で求める方法を考えよう. \\[1zh]   どの道順を取るにせよ,\ \textbf{\textcolor{magenta}{→\,方向に4回}},\ \textbf{\textcolor{cyan}{↑方向に3回}}移動することになる. \\[.2zh]   よって,\ 最短経路の総数は,\ \textbf{\textcolor{red}{→\,4個と↑3個を並べる順列の総数に等しい.}} \\[.2zh]   結局,\ \textbf{\textcolor{blue}{同じものを含む順列}}に帰着するから,\ $\bunsuu{7\kaizyou}{4\kaizyou3\kaizyou}$\ として求められる. \\\\   一般化すると以下の公式が得られるので,\ 参考までに示しておく. \\[1zh] \centerline{$\bm{\textcolor{blue}{縦m区画,\ 横n区画の最短経路の総数}}は \centerline{$(\textcolor{magenta}{m個の\,→}\,と\textcolor{cyan}{n個の↑}を並べる順列の総数)$} \\\\   公式の導出・意味合いが重要なのであり,\ 数式のみを丸暗記してはならない. 例えば,\ 上図の経路は,\ ただ1つの文字列「↑→→↑→↑→\,」を意味する. \\[.2zh] 逆に,\ 文字列「↑→→↑→↑→\,」は,\ ただ1つの経路(上図)を意味する. \\[.2zh] つまり,\ \bm{最短経路と矢印の並びは1対1で対応する.} \\[.2zh] そして,\ この矢印の並びは同じものを含む順列にすぎないというわけである. 下図のような碁盤目の道路をAからBまで最短距離で行く.\ 次の道順は何通りあるか. \\[1zh] \hspace{.5zw}\ \begin{tabular}{lll} (1)\ \ AからBまで行く.   & (2)\ \ Pを通る. & (3)\ \ Pを通らない. \\[.8zh] (4)\ \ PもQも通る. & (5)\ \ PもQも通らない.   & (6)\ \ Pで右折禁止. \end{tabular} \\\\[-.5zh] \hspace{.5zw}\ \ \ (7)\ \ 3回以上連続して右に進む. \\[.8zh] \hspace{.5zw}\ \ \ (8)\ \ 交差点で4回曲がる. \\[1zh]  \textcolor{magenta}{右へ1区画進むことを\,→},\ \textcolor{cyan}{上へ1区画進むことを↑}で表す. \\\\  (1)\ \ AからBまでの道順は,\ \textcolor{magenta}{6個の\,→}\,と\textcolor{cyan}{4個の↑}の順列の総数に等しい. \\[1zh] \text{AからPまでとPからB}までの道順を分けて求めればよい. \\[.2zh] \text{AからPまでの道順の3通りのいずれに対しても,\ PからBまでの道順は35通りある.} \\[.2zh] よって,\ 積の法則を適用する. 通らない点がある場合,\ \bm{総数から通る場合の数を引く}のが基本である. \bm{通る点が区画の途中にある場合,\ その両端の交差点を通る}と考えればよい. \\[.2zh] よって,\ 本問の場合,\ \text A\ →\ \text P\ → \text Q’\ →\ \text Q”\ →\ \text B\ という道順の総数を求めることになる. \\[.2zh] 当然,\ \text{Q}’\,から\text{Q}”までは1通りである.  \betu\ \ ある交差点までの道順の総数は,\ \\[.2zh] \phantom{ (1)}\ \ その1つ左の交差点までの道順の総数と \\[.2zh] \phantom{ (1)}\ \ その1つ下の交差点までの道順の総数の \\[.2zh] \phantom{ (1)}\ \ 和に等しい. \\[1zh] \phantom{ (1)}\ \ よって,\ 右図より \textbf{87\ (通り)} \\[-12zh] \textbf{総数からPを通る場合とQを通る場合を除けばよい.} \\[.2zh] しかし,\ \text{「\,Pを通る」と「\,Qを通る」}は\bm{互いに排反ではない.} \\[.2zh] \bm{排反でない2つの条件は,\ ベン図でとらえる}とわかりやすい.\ 求めるべきは,\ 図の色塗り部分である. \\[1zh] 通らない点が多くなると,\ 全体から通る場合を除いて求める方法は複雑で難しくなる. \\[.2zh] そこで知っておきたいのが,\ \bm{排反な場合分けにより直接的に求める}方法である(別解1). \\[.2zh] まず,\ \bm{通らない経路を除いてできる四角形の対角線を含むように斜めに切断する.} \\[.2zh] そして,\ \bm{切断線上のどこの交差点を通るかで場合分けする}と,\ 互いに排反な場合分けになる. \\[.2zh] 実際,\ どの道順も\text{a,\ b,\ c}のうちただ1つを通る. \\[.2zh] よって,\ \text{「\,aを通る」「\,bを通る」「\,cを通る」は互いに排反である.} \\[.2zh] \text{d,\ e,\ f,\ g}についても同様なので,\ 二段階で場合分けしてすべての場合を尽くす. \\[.2zh] 場合分けは多くなるが,\ 汎用性の高い解法である.\ リスクも少ない. \\[1zh] さて,\ \bm{最短経路問題には,\ ある意味最強の最終手段がある.} \\[.2zh] \bm{和の法則を利用して,\ すべて書き出して数える}方法である(別解2). \\[1zh] ある交差点\text Pまでの道順の総数を考えるとする. \\[.2zh] \text Pを通る\dot{す}\dot{べ}\dot{て}の道順は,\ 1つ左の交差点\text Sまたは1つ下の交差点\text Tの\dot{一}\dot{方}\dot{の}\dot{み}を通る. \\[.2zh] よって,\ \bm{(\textbf{P}までの道順の総数)=(\textbf{S}までの道順の総数)+(\textbf{T}までの道順の総数)}\ が成り立つ. \\[.2zh] 結局,\ \bm{1つ左の交差点と1つ下の交差点の和を各交差点に書き込んでいく}としらみつぶしできる. \\[.2zh] 存在しない部分は0と考えればよい. \\[-17zh]  (6)\ \ \textcolor{blue}{Pの1つ下の交差点をP$’$,\ \ 1つ右の交差点をP$”$}とする. \\[1zh] 総数から右折する場合の数を引く.\ 右折する場合は,\ \bm{3つの交差点を通る}と考える.  (7)\ \ \textcolor{cyan}{\.{最}\.{初}\.{に}3回以上連続して右に進むことが何区画目から始まるか}で場合分けする. \\[.2zh] \phantom{ (1)}\ \ 以下,\ \textcolor{forestgreen}{→\ でも↑でもよいことを*で表す.}\ ただし,\ \textcolor{forestgreen}{下線部に→→→は現れない.} \\[1zh] \bm{同じものを含む順列における連続条件}は,\ 以前取り上げた\bm{重複順列における連続条件と同様に扱う.} \\[.2zh] \bm{最初に連続が始まるのがどこからかを基準とする}と,\ \bm{互いに排反}な場合分けができるのであった. \\[.2zh] また,\ 何個連続するかで場合分けする必要はなく,\ 3個以上連続する順列をまとめて考えられる. \\[1zh] 本問が重複順列の場合と異なるのは,\ →\ と↑の個数がそれぞれ6個,\ 4個と決まっていることである. \\[.2zh] \bm{最初の\ →→→\ の位置で場合分けした後,\ 残り3個の\ →\ の位置を*から選べば全体の順列が決まる.} \\[.2zh] 最初の\ →→→\ の位置で場合分けしているのであるから,\ 下線部に\ →→→\ が含まれてはならない. \\[.2zh] →\ は残り3個なので4個以上の\ →\ が連続することはなく,\ 容易に\ →→→\ を含む場合を除外できる. \\[1zh] 解答は簡潔に済ませているが,\ ここに至るまでの過程は容易ではない.\ 初見では難しく感じるだろう. \\[.2zh] そこで早々に諦めるか必死に粘るかが,\ 場合の数を得意源にできる人とできない人の違いである. \\[.2zh] 手を動かし頭を働かせる中で,\ 問題の本質に気付くことができれば後は容易である. \\[1zh] 本問には,\ 大きく2つの気付くべきポイントがある. \\[.2zh] 交差点で曲がるとはいっても,\ 最短距離で行くのでその\bm{曲がり方は\ →↑か↑→\ の2通りしかない.} \\[.2zh] それに応じて,\ 計4回曲がるのは[1],\ [2]の2つの場合に限られることが1つ目のポイントである. \\[1zh] 2つのポイントは,\ 各場合の数をどのようにして求めるかである. \\[1zh] \text{[1]}\ \ 5つの区画\ \maru1\ →\cdots→\ |\ \maru2\ ↑\cdots↑\ |\ \maru3\ →\cdots→\ |\ \maru4\ ↑\cdots↑\ |\ \maru5\ →\cdots→\ に分けて考える. \\[.2zh] \phantom{[1]}\ \ 要は,\ \bm{→\ 6個と↑4個を5つの区画に分けて入れる方法が何通りあるか}を求めればよい. \\[.2zh] \phantom{[1]}\ \ ここで,\ \bm{→\ が入るのは\maru1,\ \maru3,\ \maru5のみ,\ ↑が入るのは\maru2,\ \maru4のみであり,\ 互いに影響しない.} \\[.2zh] \phantom{[1]}\ \ さらに,\ \bm{1つの区画には少なくとも1つの矢印が入る}ことにも注意する. \\[1zh] \phantom{[1]}\ \ →\ と↑は互いに影響しないから別々に考えて最後に掛ければよい. \\[.2zh] \phantom{[1]}\ \ まず,\ 6個の\ →\ を\maru1,\ \maru3,\ \maru5に分けて入れる方法が何通りあるかを求める. \\[.2zh] \phantom{[1]}\ \ 同じものをいくつかの組に分ける場合,\ \bm{間に仕切りを入れる}と考えるとよい(後に詳しく学習). \\[.2zh] \phantom{[1]}\ \ \text{\scalebox{.98}[1]{\textbf{6個を3組(0個の組不可)に分けることは,\ 間5ヶ所から2ヶ所選んで仕切りを入れること}である.}} \\[.2zh] \phantom{[1]}\ \ つまり,\ \bm{→\ _\land\ →\ _\land\ →\ _\land\ →\ _\land\ →\ _\land\ →}\ \ の5個の\ _\land\ から2個選べばよく,\ \kumiawase52\,通りである. \\[.2zh] \phantom{[1]}\ \ \maru2,\ \maru4に分けて入れる方法についても同様に,\ \bm{↑\ _\land\ ↑\ _\land\ ↑\ _\land\ ↑}\ \ の3個の\ _\land\ から1個選ぶ. \\[1zh] \phantom{[1]}\ \ このように,\ \bm{同じものを含む順列で変化の回数を考える問題は,\ 結局組分け問題に帰着する.} \\[1zh] 以上の考え方が図形的にどのような意味合いをもつかも確認しておく. \\[.2zh] 計4回曲がるとき,\ 最短経路の長さを無視した大まかな形は[1],\ [2]の2通りのどちらかである. \\\\ \text{[1]}\ \ 出発直後と到着直前に通る経路は,\ 右図の\text{横線V,\ Z}上の一部であることは確定である(1通り). \\[.2zh] \phantom{[1]}\ \ \text{VからZ}に至る間に,\ 2回の縦方向の移動と1回の横方向の移動がある. \\[.2zh] \phantom{[1]}\ \ この移動に使われる縦線2本と横線1本を選べば,\ \text{AからB}までの1つの経路が定まる. \\[.2zh] \phantom{[1]}\ \ 例えば,\ 縦線\text{c,\ f},\ 横線\text Xを選んだ場合は,\ 図の青線の経路を通ることになる. \\[.2zh] \phantom{[1]}\ \ 結局,\ [1]の道順の総数は,\ \bm{縦線2本と横線1本の選び方が何通りあるか}に等しい. \\[.2zh] \phantom{[1]}\ \ \textbf{b,\ c,\ d,\ e,\ fから2本,\ W,\ X,\ Yから1本選ぶ}ときの場合の数が\,\kumiawase52\times\kumiawase31\,となるわけである. \\[1zh] \text{[2]}\ \ \textbf{W,\ X,\ Yから2本,\ b,\ c,\ d,\ e,\ fから1本選ぶ}から,\ \kumiawase32\times\kumiawase51\,となる.