前回の場合の数の続編です。ちょっとした工夫で手間が激変する、そんな「小技」を紹介します。
父:まずは前回の問題を再確認するぞ。
【問題】
1,2,3,……,1000までの整数について、次の問いに答えなさい。
(1) 3で割り切れる数は、全部で何個ありますか。
(2) 3で割り切れる数を並べて書いていったとき、7という数字は全部で何回書くことになりますか。
(2020年 本郷中学校②)
(2)について、ここまで立てた作戦は次の2つだった。
作戦1
□□7
□7□
7□□
の3パターンに分けて、それぞれの3の倍数の個数を調べる。
作戦2
7の個数については、次のように場合分けします。
7が1個の数:□□7、□7□、7□□
7が2個の数:□77、7□7、77□
7が3個の数:777
□が7以外という条件で各パターンの個数を求める■
父:この2つのうち、注意力が必要なのはどっちだろうか。
良夫:作戦2かな。
父:ほほう。
良夫:「□が7以外という条件で」ってのは、1個1個書き出す作業を行う際に気が抜けない。
父:よい視点だ。
良夫:それに比べて作戦1は、各位の数の和=3の倍数になるようにすればいいよね。
7を3で割った余りが1ということは、7以外の2桁の数の和が
3の倍数+2になることだけを考えればいいから、安心して作業ができる。
父:求めるのは7を含む整数の個数ではなく、7を書く回数だからな。
では、作戦1のうち、
7□□のパターンで表される3の倍数の個数を調べてもらおう。
良夫:やってみるね。
7□□のうち□□のところは、3の倍数+2だから、
小さい順に書き出すと、
02
05
08
11
14
17
…あれ、結局2から98になるね。
父:ってことは、
良夫:(98-2)÷3+1=33個だ。
父:よし、順調だ。
次に、□□7のパターンを考えてみよう。
良夫:おう。百の位は0以外で…
父:ちょっと待った!
良夫:びくっ。
父:誰が「3桁」と決めたのだ。
良夫:いっけねえ。変なクセがついちまってた。1からってはっきり書いてあったわ。…待てよ、
百の位が0でもよいってことは、
父:ってことは?
良夫:調べる対象を1,2,3,……,1000までの整数から
001,002, 003,……,1000に言い換えてもいいよね。
そんでもって、ついでに000,001,002,…,999に変えてもいいんじゃない?
父:000は一応3の倍数だけど、7の個数には影響しないから、変えても正しい答えが出るな。
ところで、なんのために対象の範囲を変える?
良夫:そうすれば3桁の関係が対等になるよ。
父:なんで対等にこだわるわけ?
良夫:だって、そうすれば残りの
□□7
□7□
のパターンは、調べなくてよくなるし。
父:えっ?
良夫:今やった7□□の□□に入る数字を、そのまま□□7と□7□の2か所の□に配置すれば、条件を満たしてくれるじゃん。
だから、それぞれの位に出てくる7の個数の合計は
33×3=99で出せるわけですよ。
父:自分に都合よく、探索範囲を言い換えたり、ずらしたり。よくもそんな考えが浮かぶものだな。
良夫:フフフ、いつも考えているのさ。物事がどうやったら楽になるかを。
父:…
いかがでしたか。今回の話をまとめます。
小技 各桁の「対等化」
①探索範囲に0をつける
1,2,3を001,002,003に置き換えて001も3桁とみなすと、各位の関係が対等になります。1桁の数、2桁の数の分類が不要になります。
②探索範囲の移動
「1から1000」を、「000から999」に置き換える。
求める個数に影響しない範囲で、スタートやゴールをずらすことによって
各位に出てくる数字の個数が完全に等しくなります。
今回はやや上級向けの内容になります。
この問題を作戦1または作戦2を用いて「正攻法で」解いてくれた人には、今回の解き方は簡単すぎて、威力が実感できたのではないでしょうか。
イメージとしては、スロットマシンのリール(数字や絵柄の書かれた回転する部分)で、同じものが3個ならんでいる状態です。
3桁が対等な感じがするでしょう。
こういった小手先のテクニックは、使える場面は限定されますが、ヒットすれば大いに役立ちます。
その場で思いつくのではなく、事前に仕込んでおくことで使える技術です。気に入った人はぜひ取り入れてください。
次回もお楽しみに。