今年の虫食い算メイキング

もう11か月も前のことですが、こんな虫食い算を作りました:

この虫食い算を作る際にどんなことを考えていたのか、書いてみましょう。
なお、答などに触れていますので、ネタバレが嫌な方は解いてから続きを読んでください。

数字の特性

今回は年賀パズルという性質上、表出数字が決まっています。作り始める前に数字の性格を知っておくのは重要なことです。

  • 2。偶数。小さい。
  • 0。偶数。小さい。っていうかめちゃくちゃ特殊。
  • 1。奇数。小さい。割と特殊。
  • 5。奇数。0ほどではないがめちゃくちゃ特殊。大きくも小さくもない。

特殊な数字が多くて、難易の調整に苦労しそうですね。小さい方に偏っているのもつらそう。

当初の予定

作り始めるにあたって、「こんな虫食い算を作ろう」という大枠が決まっていました。

  • 「20151」か「201511」か「201501」か「20152015」を、この順で読めるように表出する。
    • なるべく少ない方が良い。
  • 次年に使い回せない。
  • 難しい。
  • 割り算である。
    • 最後の余りを表出する。
    • 除数は3桁である。
    • 除数はすべて表出しない。

という条件です。

表出数字に関しては、年賀パズルという目的からの要請ですね。「使い回せない」もそう*1。「難しい」は、友人から課せられた条件です。

「割り算である」は、とても重要です。虫食い算というのは、特殊なことをしない限り掛け算か割り算になってしまうわけですが、割り算の方がいろいろ細かい調整がしやすいのですね。作り手に優しい。恥ずかしながら、私の力量で掛け算は無理なのです。

「最後の余りを表出する」は、できあがった虫食い算を見ていただくのが早いでしょう。

一番下に5が表出していますね。割り算の虫食い算と言えば割り切れて0があるのが普通ですが、そうではなく、こんな感じで日付の末尾がここに見えるようにしよう、ということです。
「除数は3桁である」「除数はすべて表出しない」は、難易度からだいたいこんなものだろう、というところです。

仕切り直し

上で挙げた条件をすべて満たす虫食い算を作ろうとして、1時間くらい経った頃だったでしょうか。「ああ、これは無理だな」と思いました。いろいろ試したんですけど、ピタッと決まってくれない。どうも私の分を超えたことに挑戦している気配がしました。
仕方ない、何かを諦めましょう。
「除数はすべて表出しない」が一番諦めやすい条件のように見えます。これを諦めてしまいましょう。疲れたので、除数の百の位を2で表出して、一の位は奇数に限定して、0は適当に表出。これでどうだ!

この段階で、除数の候補は4つだけ。203と209と253と269ですね。
このうち、203だけはいけません。商の上1桁が決まらなくなってしまいます……が、この時点の私はそのことに気付いていませんでした。

4つの候補

さて、ここまで決まったところで、残りの表出数字のことを考えます。既に2と0と1を使いました。
もしも「20151」の5文字だけを表出数字とするなら、残りは5と1の2つだけ。しかも、そのうち1は最後の余りと決まっているので、ほとんど役に立ちません。ということは、1つの数字(と、桁数の形)だけで4通りから1つに絞る。これは無理っぽい。では、「201511」や「201501」なら? なるべく少ない表出で難しくするには、どうすれば良いか? 難しくするには、203と209の見分けづらさを利用すれば良いのでは?
……みたいなことを考え始めたところで、203が正解ではいけないと気付きました。つまり、除数が203ではない理由をどこかに入れなくてはなりません。これはちょっとしたダメージです。というのは、この時点で私が思い描いていたのが、

  1. 253と269ではうまく行かない理由を組み込み、
  2. その盤面で203と209のシミュレーションを行い、
  3. それらの細かい違いのどれかが運良くしかるべき表出数字であるならそのマスを表出させて完成、そうでなければ1に戻る、

という、運任せの作り方だったのですが*2、最後の「そうでなければ1に戻る」の回数が多いと大変な作り方です。203と209のどちらが答になっても構わないなら、大した回数でなさそうですけど、必ず209でなければならないとなると、ちょっと……。

というわけで、方針に迷いが生じたわけですが、ここで203と253をまとめてふるい落とす方法を思い出しました。

形だけで絞る

203と253には、「1000の約数よりほんの少しだけ大きい」という共通の性質があります。こういう候補をまとめてふるい落とす方法があるのです。次の図を見てください:

この図では、200や250よりほんの少しだけ大きい数は、除数に入りません。
除数がそのような数、例えば203であると仮定しましょう。203は200と1.5%しか違わないので、被除数の下界である1000000を203で割った商を概算すると、5000から1.5%引いて4925くらい*3。下界で4925なのだから商は必ず4925以上になるはずです。ところが、形から商は4910未満でなければならず、矛盾。よって203ではありません。253でもほぼ同様です。

この形を組み込んでおけば、そこそこの難しさを保ちつつ203と253をまとめてふるい落とすことができます。さっきまでの方針は捨てましょう。
この理屈で209と269はふるい落とされないことも確認して、あとは仕上げです。

仕上げ

あとは、生き残った209と269のうち、一方だけを残すような表出方法を探すだけです。割り算なので、下にちょっと付け足して表出を増やせば簡単。このとき、強力過ぎる数字を表出させると、そこから簡単に解けてしまってこれまでの苦労が泡と消えますから、それ避けるように注意します。結局8数になったけど、もうそれで良いでしょう。
5は、上半分と下半分の間に入れるしか無いようです。ダミー情報になってしまいますが仕方ありません。

解き直し

仕上げ段階で、一応2通りの問題を作っておきました。2つのうち、実際に解いてみて良いと感じた方を採用して、できあがり。4候補に限定されたあと、一番下の辺りを見て269が却下されて残り3通りを全部試す、という解き方が普通でしょうか。

*1:お祝い事がテンプレ的に済んじゃうのは何か嫌だな、ということです

*2:これなら、力量が無くてもちょっと難しくできそうです。

*3:厳密には、203*4925は1000000を少し下回ります。(a+b)(a-b)