知的粘着力の発動!
2024年度の開成中学算数の問題でのっけから恥をさらしてしまいましたが、私は、この問題に少々粘着したいと思っております。
中学受験界隈では、この種の問題についてのアプローチが確立されていて、その種の訓練がシステマティックに行われているのかもしれませんが、そのようなことをしなくても、問題解決のアルゴリズムという観点を持っていればよいだけなのではないかと思います。
有名な例ですが、大部な電話帳から1件の電話番号を探す方法として、頭からページをめくっていくという調べ方もありますが、『困難は分割せよ』という「古き」教えに従って、まず真ん中のページを開き、それより前にあるか後にあるかを考え、不要な半分を捨てて、また残った方の半分を開き…というやり方があります。
冒頭に情報があるなどラッキーな場合は別として、一般的には明らかに最初から順にページをめくっていく方法より困難を分割していく方法の方が優れた探し方だということが分かると思います。
もっともアイウエオ順なのでそのことを利用すればいいのですが、簡単のためにその用法については敢えて述べませんでした。ただこのやり方もいちいちアイウエオ順を確認しながらページをめくっていくことになるので、ひょっとすると上の方法よりも手間がかかるかもしれません。
ここで開成中学の問題の話に戻ります。
2024は大きな数なので、「困難は分割して」、つまり、より小さな数にする術を考えるという観点を持ち込めば2024を相手にするよりは253を相手にする方が楽かもという発想が出てきます。あとは9×7=63をベースにして253に迫る。9×7×4=252ですので、あと1を加えれば253となり、
2024 = 8×(9×7×4+1)
という解答にたどり着けますね。
完全にアルゴリズムの問題だったのか、と改めて感心させられました。
そのことを踏まえてコードを書き直したところ、0.4秒で、
Trying with 1 digits... No solution found for this number of digits.
Trying with 2 digits... No solution found for this number of digits.
Trying with 3 digits... No solution found for this number of digits.
Trying with 4 digits... No solution found for this number of digits.
Trying with 5 digits... Solution Found: (4*7*9+1)*8 = 2024
と求まりました。
この記事が気に入ったらサポートをしてみませんか?