9! (解) 例えば↑→→↑↑→→→↑という矢印で表されるので、──── を計算して126通りである。 4!5!
また、組合せを用いた別解として、9回の移動のうち、↑となる移動をする4区画を選べば道すじが1つ決まるので、9C4=9C5=126通りとする方法も同時に載せられている。
授業中には、この2つを扱う予定であったが、数え上げの方法で解いた生徒がいてびっくりした。正直なところ、高校時代にあまり数学が得意でなかった私は、自分自身はじめての体験であったので、「ふうん、本当だ。そんなふうにもできるんだねぇ。」と対応してしまったので、その生徒が自分の考え方を得意げにみんなの前で発表した。そして、第3の解法ということでほかのクラスでも紹介しておいた。
(別解)それぞれの交差点に入ってくる道順の総数を図のように書き込むと、126通りである。
これは図のような角Gに来る道順が、Gの左の角Sおよび右の角Tからの両方向ありそれぞれがk通り、m通りあるならば、Gに来る道順はあわせて(k+m)通りあるという和の法則を用いたものであったが、どれだけ道が複雑であっても、最短経路の総数が求められるということで、生徒には結構好評であった。次の2つの例で確認しておきたい。
例1)
k通り→ (k+m)通り
S ━━━━━━━━ G
┃ ┃
┃ ┃↑m通り
┃ ┃
━━━━━━━━ T
例2)
例えば、図1のような経路でRを通らないものは、図2のように考えて8通り。また、図3のような経路での最短経路は、図4のように考えて12通りと、結構簡単に求めることができる。
★次に、この内容を学習して3つのクラスで同じことを説明していくうち、先程の例題の数え上げの図を斜めにみると、パスカルの三角形が隠れていることに気がついた。その作り方から考えれば当然のことと言えるかもしれないが、こうして道順を数え上げていくことにより (a+b)n の展開時における各項の係数がわかるのであれば、3次元を考えることによって、
(a+b+c)nの展開が同様にできるのではないかと考えてみた。
まず、(a+b+c)n でn=1,2,3,…と数値を代入して実際に展開をしてみると、
(a+b+c)1=a+b+c
(a+b+c)2=a2+b2+c2+2ab+2bc+2ca
(a+b+c)3=a3+b3+c3+3a2b+3a2c+3ab2+3b2c+3ac2+3bc2+6abc
(a+b+c)4=a4+b4+c4+4a3b+4a3c+4ab3+4b3c+4ac3+4bc3+6a2b2+12a2bc+6a2c2+12ab2c+6b2c2+12abc2
ここまで展開するだけでも骨のおれる作業であった。一方、立体モデルを作り、数え上げの方法で各格子までの最短経路数を書き込んでみた。すると、同一平面上にきれいに展開したときの各項の係数が並んでいることがみてとれた。このことは、次のページの図をみればあきらかである。このあと、n=5,6,… と数値を代入して展開をしていくことがいよいよ大変になってきたので、本校の栃木欣也先生に相談したところ、快く次のようなプログラムを作っていただくことができ、計算の手間を省くことができた。このプログラムは、先程の数え上げの法則をうまく利用されたもので、立体モデル同様次に載せておく。
1:input "縦,横,高さ=",L,M,N 2: dim PAS(L,M,N) 3: for I=0 to L:PAS(I,0,0)=1:next I 4: for I=0 to M:PAS(0,I,0)=1:next I 5: for I=0 to N:PAS(0,0,I)=1:next I 6: for I=1 to L:for J=1 to M:PAS(I,J,0)=PAS(I-1,J,0)+PAS(I,J-1,0):next J:next I 7: for I=1 to M:for J=1 to N:PAS(0,I,J)=PAS(0,I-1,J)+PAS(0,I,J-1):next J:next I 8: for I=1 to L:for J=1 to N:PAS(I,0,J)=PAS(I-1,0,J)+PAS(I,0,J-1):next J:next I 9: for I=1 to L:for J=1 to M:for K=1 to N 10: PAS(I,J,K)=PAS(I-1,J,K)+PAS(I,J-1,K)+PAS(I,J,K-1) 11: next K:next J:next I 12:*LOOP:input "n=",E:if E=0 then end else if E>L then beep:goto *LOOP 13: for K=0 to N:for J=0 to M:for I=0 to L 14: if I+J+K=E then print I;J;K;"=";PAS(I,J,K) 15: next I:next J:next K 16:goto *LOOP |
Home Page | Index Page |