見出し画像

番外編 |すべての場合の羅列書き出し~辞書式配列と二次元表と樹形図と

X型

【例題1】 100円,50円の2種類の硬貨が2枚ずつある。これらの硬貨を用いてちょうど支払える金額は何通りあるか。

 お気づきだろうか、軸が2つあるときはこれまで皆さんがやってきたやり方で解ける。つまり、100円硬貨を「0枚」「1枚」「2枚」の3通りの中から出すAさんと、50円硬貨を「0枚」「1枚」「2枚」の3通りの中から出すBさんとに分担すると、あら不思議,やはり表に書けてしまう。

 表にかいてみると、100円と200円がかぶるので、答えは7通りである。(「100円玉2枚」と「100円玉1枚+50円玉2枚」は,見た目の支払い方は違えど両方とも金額は200円。問題は金額は何通りか,となっているところに注意。)

【例題2】 100円,50円,10円の3種類の硬貨が2枚ずつある。これらの硬貨を用いてちょうど支払える金額は何通りあるか。

 100円硬貨を「0枚」「1枚」「2枚」の3通りの中から出すAさんと、50円硬貨を「0枚」「1枚」「2枚」の3通りの中から出すBさん、そして10円硬貨のCさん、・・・3人いるときは表が書けない、という話をした。残念ながら私たちに与えられたのは、2次元空間を自由に処理をする紙と筆記具だ。3次元空間に目で見て分かる表を書くことはできない。もっと言うと、4人になったら4次元の表を書かなければいけないので,3次元空間にはおさまらず,お手上げだ!

 というわけで、2次元表はあくまで2人で分担できるときの便利な方法、と言うことにしておく。なお高校の教科書・問題集も「さいころ2つ・2回」となると、途端に何の断りもなく表を使い出すのだ。なぜそうなのか? 考えたときに2次元表はそれだけ使いやすい,ということで、2人で分担ができるときは2次元表が一番モレなくダブりなくすべての場合を示すことができるいい方法だ,というのがこのnoteでの主張である。

 で、だ。分担するのが3人、4人・・・となった場合の方法をもう一度考えてみることにしよう。

 もともと、一つ一つ書き並べてみる方法があった。このとき思いつくまま書いてみる方法もあるが、モレやダブりがないように、ということで、2人で分担の時には表を使うことにしたのだ。3人以上は,もう一度書き並べる方法に戻ってみることにしよう。

 モレやダブりを防ぎながら、当てずっぽうではなく書き並べるためには「枚数の小さい順から」などと自分で基準を定めて順番に書き並べるのがよい。

 基準をつくるときには「小さい順」「あいうえお/アルファベット順」など,途中で自分でも混乱しないようにすることも大切だ。

 数字の大きい順からと思ってはじめても、人間は0,1,2,3・・・という順番に慣れてしまっているので、ついついどこかで小さい順から,となっていて,結局どこからそうなったか分からないのでやり直し! ということもあるだろう。例えばこの問題のように0・1・2だけで済むならいいが、「1,2,3,たくさん」という発想は人間の本能の奥底にあり、バカにできない。

 ただしお金になると、ついつい大きい金額から考えたくなるのは人間の性か。慎重に答えを出すために、最初の基準づくりは大切なのである。

 ちょっと横道にそれたが,このように,ある基準に従って順番に書き並べるやり方には[辞書式配列]という名前がついている。教科書に出てくる言葉ではないが,覚えておいて損はないと思う。

 この問題のもうひとつ注意は、並べたものそのものが答えではなく,それを使って答えをつくる作業がもうひとついる、ということである。

 しかし、このように書き並べると同じ数字や文字・記号などを延々と書かなければならない。それが面倒、という人のために[樹形図]という方法もある。中学でも高校でも、教科書(や凡庸な参考書)には、さも樹形図が場合の数を考えるときの最強ツールであるかのようにしれっと導入されるが、なぜ樹形図がよいか,というと,辞書式配列の「何度も同じことを書くことを省略できる」というデメリットをカバーする方法としてある,ということである。便利な道具は,最初から便利なものとして存在するわけではない。

 よく数学の問題の答えを見ると〔同じように〕〔同様にして〕と書いてある場合がある。ところが学習者からすると「何が同じようにして?同様なの?」と頭をうんうんとひねる場合がある。この〔同様にして〕が通じる場合に省略ができるし、解答者は採点者に「通じる!」と信じてこの呪文で省略をしているわけである。

 そして、〔同様にして〕が通じるようなら、繰り返し書くことは省略したい!

 何度も言うが,数学者は「省略したがる」。省略のためにいろんな記号とか考え方とかを導入する。(←このことは、繰り返し、省略せずに言います!)

 こんなたとえで申し訳ないが,最近公共のトイレで,終わった後流さず便座のフタを閉めない人が増えた,という話がある。自宅のトイレは人が離れると自動で流してフタを閉めてくれる、ということで、どうも便座を自分で閉めるという発想そのものがない、ということらしい。そもそも便座について言うと,シャワー式トイレ(ウォッシュレット)だったり洋式トイレだったり水洗トイレだったり・・・自分が「トイレとはこういうもの」というレベルが人によって(世代によって?)相当ちがうのかも知れない。そういう意味で、便座とは自動で処理してくれると思い込んでいると,ちょっと困るのである。同様に、場合の数と言えば樹形図、という発想で教えようとするのは,いかがなものか,と思う。基本は書き並べによる羅列で、羅列を効率化したりミスを防いだりするために表や樹形図を使う、ということなのだ。

 そういう意味では[手作業]が先にあり、その手作業をいかに効率化したり、抽象化してアルゴリズムに落とし込んだり読みかえたりするか、ということをやって行かないと、こういう問題はこういう解法というパターン化ではどこかで行き詰まる。

 また筆がすべった。辞書式配列と同様,順序よく並べないとモレが生じる可能性がある。私があまり樹形図にいい顔をしていないのは「斜めになる」からだ。辞書式配列はまっすぐ書いていけばいいし、途中で紙が下まで行ってしまったら別の列とかにしてしまえばいい。ところが樹形図は最初に枝を書くときにどこまで広げておけばいいのかが分からない。(教科書や問題の解答などにはしれっとキレイな樹形図が並んでいるので,キレイな樹形図を書けるもんだ,と思ってしまうが,つまづくのは実はここだ!)

 ただし、樹形図にはメリットも大きい。ネタばらしをしてしまうと,次に「計算・公式で求める」という段階が待っているのだが、このときになぜその計算・その公式で求めることができるのか,樹形図をつかうとその根拠が視覚的に分かりやすいのだ。だから教科書などをフローしておくと、(特にできる子たちには)ショートカットしてすぐそこにつなげたい、という思いがあるのだろう。(でも、やはり繰り返しであるが,数え上げるための樹形図を計算で省略している感覚がないと、公式に当てはめ手何をしているのか分からない落とし穴にはまってしまう)

【例題3】 100円,50円,10円の3種類の硬貨がそれぞれ5枚ずつある。これらの硬貨を用いて,300円ちょうどを支払うとき,支払い方は何通りあるか。

 例題2は,可能な場合をすべて書き並べる場合であったが、ある種の制約条件の中で,書き出す場合。あり得る可能性をつぶしていく,という樹形図の書き方もある、ということに注意しておこう。

P型

【例題4】 [1],[2],[3],[4]の4枚のカードから3枚のカードを並べて3桁の整数をつくる。このときできる3桁の整数をすべて答えよ。

 辞書式配列にしても樹形図にしても、順番を決めて書き出す(小さい順,大きい順,あいうえお順,アルファベット順,…)のは変わらない。

 上のX型と異なるのは、「いったん左で使ったものは、次から右に使わない」というルールが付け加わることだ。

【例題5】 [0],[1],[2],[3]の4枚のカードから3枚のカードを並べて3桁の整数をつくる。このときできる3桁の整数をすべて答えよ。

 百の位に0が来ない。同じ数字を繰り返し使わないように、百の位が1である3桁の整数を、小さいものから順に書き出す。

 同じようにして百の位が2である3桁の整数を書き出す。この程度なら,ほしいアウトプットが重なるので、樹形図よりも辞書的配列の方がよい、ということになる。ここら辺もなんとなく感覚でやってきたことだが,こうやって意識化しておいた方がいいのかも知れない。

C型

【例題6】 袋の中に1,2,3,4,5,6,7のいずれかの数字を書いた球が,それぞれ1個ずつ入っている。この中から球を3個取り出すとき,そこに書いてある数の和が奇数である場合は何通りか。

 順番を決めて書き出す(小さい順,あいうえお順,アルファベット順,…)

 もう出ている「組合せ」は書かない。つまり、右に行けば行くほど大きくする,というもうひとつの「基準」を入れるということ。位が1である3桁の整数を、小さいものから順に書き出す。

【例題7】 100円,50円,10円の3種類の硬貨が3枚ずつある。これらの硬貨から3枚用いてちょうど支払える金額は何通りあるか。ただし使わない種類の硬貨があってもよい。

 これも同様。大きい金額の硬貨から考えてもよいし,小さい金額の硬貨から考えてもよい。

【例題8】 バラが3本,カーネーションが2本、スズランが2本ある。ここから3本選んで花束をつくるとき,つくることができる花束の種類は何通りあるか。ただし使わない花があってもよい。

 

この記事が気に入ったらサポートをしてみませんか?