まだ粘着中 2024開成中学算数
大問2を見ましょう。書式は変わっていますが、次のような問題です。
9枚のカード (1, 2, 3, 4, 5, 6, 7, 8, 9) があります。はじめに、9枚のカードから何枚かを選び、混ぜ合わせて1つの山に重ねます。このときのカードの並び方を「はじめのカードの状況」ということにします。
例:5枚のカード(1, 2, 3, 4, 5) を使う場合、「カードが上から 4, 2, 5, 1, 3 の順に重ねられている」とします。これを簡単に【42513】と表すことにします。
机と箱があります。次のルールに従って、山に重ねたカードを上から1枚ずつ、机の上か、箱の中に動かします。
1枚目のカードは必ず机の上に置く。
2枚目以降のカードは、そのカードに書かれた数が机の上にあるどのカードに書かれた数よりも小さいときだけ机の上に置き、そうでないときには箱の中に入れる。
例:はじめのカードの状況が【42513】のとき、カードは(図{割愛してます}を参照)のように動かされ、最終的に机の上には3枚のカード(4, 2, 1)が、箱の中には2枚のカード(5, 3)が置かれます。この結果を、机の上のカードに注目して、カードが置かれた順に《421》と表すことにします。
(1) 7枚のカード (1, 2, 3, 4, 5, 6, 7) を使う場合を考えます。はじめのカードの状況が【7463125】であるときの結果を答えなさい。
コメント:
これは、ルールを理解しているかどうかの問題なのでサクッと《7 4 3 1》と出ます。要するに既出の数字よりもデカいものを除外していけば求まるのでこれは瞬殺です。
(2) 次のそれぞれの場合のはじめのカードの状況について答えなさい。(ア)、(イ)については、解答欄をすべて使うとは限りません。
(ア) 3枚のカード (1, 2, 3) を使う場合を考えます。
結果が《21》になるはじめのカードの状況をすべて書き出しなさい。
コメント:
はじめに3、1が出てしまうと結果の最初がそれぞれ3,1になってしまうのでNGです。なので最初は2に決まります。【 】の最初の数字は必ず机の上に置かれるので《 》の最初の数字と一致することが分かります。どのみち3は除外されるので、続く3、1の順序は任意です。よって、はじめの状況は【2 3 1】か【2 1 3】だったのでしょう。
(イ) 4枚のカード (1, 2, 3, 4) を使う場合を考えます。
結果が《21》になるはじめのカードの状況をすべて書き出しなさい。
コメント:
これも(ア)と同様に考えて、最初は2に決まります。この小問でも最初さえ押さえてしまえば、、続きの部分で1、3、4がどのように並んでいても3,4は除外されるので、問題ありません。答えは3!、つまり6通りあることがまず解明できます。後はリストを出力するだけです。少々ダルいですね。
【2 1 3 4】【2 1 4 3】【2 3 1 4】【2 3 4 1】【2 4 1 3】【2 4 3 1】でしょうか。
これはイマイチの出題です。ちまちまリストアップするような問題は今や人間がやるモノではありません。私は、ケアレスミスしがちなので嫌いです。以降の問題に取り組むときの教訓を与えるつもりなら、列挙の問題は1問あれば分かっちゃうと思うのですが、試験の作成チームとしては、ボーナス問題というところでしょうか。
(ウ) 5枚のカード (1, 2, 3, 4, 5) を使う場合を考えます。
① 結果が《21》になるはじめのカードの状況は何通りありますか。
コメント:
これは、既にわかっていること「【 】の最初と《 》の最初は一致している」が今までの問いで学習できていれば、瞬殺です。最初に2が出てしまえばあとはどんな順序でも1以外は除外されるので、答えは4!=24、24通りですね。
② 結果が《521》になるはじめのカードの状況は何通りありますか。
コメント:
これも【 】の最初は5です。次の数字は、2以外が来るとそれが《 》の中に入ってしまいNGなので、2だと判明します。ここまで固まったら、あとはどんな順序でもやはり1以外は除外されるので、答えは3!=6、6通りですか♪ ここまでもボーナス問題だと思われます。
このあたりで、アルゴリズムの話がしたくなってきましたが、それは後日にします。少なくとも悉皆探索で数え上げる類の問題ではないことは明言しておいていいでしょう。
(エ)6枚のカード (1, 2, 3, 4, 5, 6) を使う場合を考えます。結果が《521》になるはじめのカードの状況は何通りありますか。
コメント:
ここでも【 】の初めは5ですね。前の問題との違いは6が存在していることですが、実は6は冒頭以外ならどこに出てきても構わないのです。除外されちゃいますから。ここから考え方が2つに分かれます。
一つは【 】の冒頭で5と2が並んでいる場合と、5,6,2が並んでいる場合に分けて、前の場合は残りの4つの数字の順番はどうでもよく4!=24で、後の場合は残り3つの数字の順番はどうでもよいので3!=6となり、これらは重複していないから24+6=30(通り)。
もう一つは(ウ)②の答えを利用するもので、6通りあるそれぞれで【 】の中の数字の冒頭以外、6は数字の間か末尾の5か所に入れるので、
5×6=30(通り)と求めたほうがスマートですね。
冒頭の数字よりも大きい数字のカードが存在する場合に、その数字がどこに来てもよいという気付きが得られます。
(オ) 9枚のカード全部を使う場合を考えます。結果が《75421》になるはじめのカードの状況は何通りありますか。
コメント:
ほ~う、全部使いますか。ダルそうですね。間違っても悉皆探索に走ってはいけません。【 】の冒頭が7なのはもう大丈夫ですね。《 》の7の次の数字は5ですので、【 】の冒頭は、
A【75・・・】か、B【7 X 5・・・】( X = 8, 9 なので2パターン)か、C【7 X Y 5 ・・・】( X Y は 8, 9で作る順列なので、2パターン)のどれかになります。
Aのとき、
残りの7つの数字のうち4と2と3と1または4と2と1と3は前後や間に他の6、8、9が入りますが、この順番に並ばないと結果が違ってきます。こういう場合は『同じものを含む順列』がキラーです。4,2,3,1をすべてM,M,M,Mとし、この4つと6,8,9の3つを合わせた7つの数字を並べる順列は、7!/4!=210(通り)、4,2,1,3の場合も同様なので、210×2=420(通り)と出ます。
Bのとき、
とりあえずX=8と固定しましょうか。
残りの6つの数字の考え方はAと同じで、4つの数字(並び順固定)M,M,M,Mと6,9の6つの数字を並べる順列は、6!/4!=30(通り)でM,M,M,Mには2パターンあるので、30×2=60(通り)、
X=9としても同様の結果が得られるので、60+60=120(通り)と求まります。
Cのとき、
とりあえずX=8,Y=9と固定します。
残りの5つの数字についてはもう大丈夫ですね、M,M,M,M,6を考えて、5!/4!=5(通り)、M,M,M,Mには2パターンあるので、
5×2=10(通り)。最後にX Yを入れ替えても同様につき、
10×2=20(通り)と出ます。
以上より、420+120+20= 560(通り)が求まります。
(エ)の解法でも『同じものを含む順列』を説明できたのにそれを持ち出すまでもないと思った次第です。
これが手堅い解法だと思いますが、冒頭の数字よりも大きい数字はどこに来てもよいという「気付き」が活かせていません!!!。
そこで、1,2,3,4,5,6,7 すなわち、冒頭に来る数字が一番大きい数字である7枚のカードを使って、《 7 5 4 2 1》になる場合の【 】を考えます。この場合はリストアップではないので、何通りあるかが分かればよいですね。その後で冒頭以外なら自由に入れ込める 8,9 のカードについて考えればよいのではないかと思いました。
【 】内の冒頭は7です。あとの6つの数字の並び方は、5,4,2,1,3 または 5,4,2,3,1がこの順に現れれば、6は冒頭以外のどこでもよいということで、それぞれ5通りずつ((ウ)②と同じ考え方!)です。よって、8,9を入れ込む前の【 】は5+5=10(通り)あります。
このうちの1つの場合を取り上げてみます。
7 5 6 4 2 3 1
これへの8,9の入れ込み方を考えるときには、どこに入れ込めるかと考えられなくもないですが、ここでキラーの登場です。まずは8,9をM,Mとし、5,6,4,2,3,1(7は冒頭なので含めません)をN,N,N,N,N,Nとして同じもの2つと6つを並べてつくる順列を考えると、
8!/(2!×6!)=28(通り)と出て、8,9が逆順になる場合も同じなので、入れ込み方は、28× 2 =56(通り)と得られます。
10通りある入れ込み前の【 】のそれぞれに56通りの入れ込み方があるのですから、解答は、56×10=560(通り)です。1つであれば楽勝ですが、2つ以上の要素をある順列に挿入するときには「間」とか「末尾」とかいうのはダルいので、「同じものを含む順列」の概念を導入する意味があります。
ちなみに、ここで使った考え方でプログラムを組むのは煩わしいので、1~9までの数字の列(362,880個)を発生させて、ルールを適用し、結果が一致するようなものを残すというアホなアルゴリズムを実行するコードを書きました(書くのはこの方が簡単 ♪ )。そんな粗末なものでも実行したら、秒で求まりました(笑)。やるねPC!
この問題に対峙できる資質がある小学生になら、数学を本格的に学ばせても全く問題はなく、体系的な数学の思考法を身につけさえればよいと思いました。冒頭の2024を一桁の整数で表す問題の解説動画で「2024の素因数分解を覚えているよね」的な発言をする解説者もおられましたが、そんな知識を与えなくても、賢い児童は自分で学びます。
この大問が示すように、問題を解く中で受験者が何かを学習することを求め、それを活かして更なる問題解決に挑ませるという出題スタンスの学校にテクニックでかためられたアタマだけで通用する筈はないでしょう。
だいたい、『状況』なんて抽象性の高い言葉が理解できる人を相手に、数学を封印し、オブラートに包んでまわりくどく『同じものを含む順列』の概念を教えるような茶番を演じる必要はありませんよね。