テクニック

虫食い算の解き方と作り方|繰り上がりで一意に絞る手順

更新: 真鍋 奏人
テクニック

虫食い算の解き方と作り方|繰り上がりで一意に絞る手順

虫食い算は、計算式の数字の一部を隠し、残った式から隠れた数を論理で復元する推理計算であり、覆面算はその数字をアルファベットや漢字に置き換えた発展形です。筆者が謎解き初心者ワークショップで教えると、ほぼ全員が「どの空欄から手をつけるか」で止まりますが、

虫食い算は、計算式の数字の一部を隠し、残った式から隠れた数を論理で復元する推理計算であり、覆面算はその数字をアルファベットや漢字に置き換えた発展形です。
筆者が謎解き初心者ワークショップで教えると、ほぼ全員が「どの空欄から手をつけるか」で止まりますが、最上位の桁を最初に疑うと一気に動き出す場面を何度も見てきました。
空欄を端から当てずっぽうで埋めるのではなく、確定情報のある桁から芋づる式に埋め、位ごとに繰り上がり込みの式を立て、繰り上がりは0か1だけだと決め打つのが基本です。
かけ算は一の位から、割り算は左の大きい位から攻める型を持っておけば、四則すべてで手が止まりにくくなります。

虫食い算とは?覆面算との違いを30秒で整理

名称 定義 主要な違い 基本ルール
虫食い算 筆算などの数字の一部を伏せ、残りの情報から隠れた数を復元する推理計算です。
数字そのものを当てるのが中心で、文字の対応づけはありません。
数字は0〜9の10種類、最上位の桁に0は入らず、解は1通りに決まります。
覆面算 数字を文字や記号に置き換えた計算パズルです。
同じ文字には同じ数字、違う文字には違う数字が入る制約が加わります。
使える異なる文字は最大10種類で、先頭ゼロは禁止です。

虫食い算は、足し算やかけ算、割り算の筆算で数字の一部だけを隠し、残った桁と計算の規則から答えを1つに復元する推理計算です。
土台にあるのは0〜9の10種類だけで、まずは見えている桁から条件を拾っていくのが基本になります。
覆面算はその発展形で、数字を文字や記号に置き換えたうえに、同じ文字には同じ数字、違う文字には違う数字という制約が加わるため、見た目以上にルールが厳しくなります。

虫食い算=筆算の一部を隠した推理計算

虫食い算では、計算そのものの仕組みはふつうの筆算と同じです。
違うのは、いくつかの数字だけが空欄になっていて、残った数字と位の関係から隠れた数を埋める点にあります。
筆算の形を崩さずに考えるので、どの桁がどの計算に効いているかを追いやすく、確定情報のある部分から少しずつ詰めていくと解きやすくなります。
数字は0〜9の10種類しかないので、見えている桁の配置だけでもかなりの手がかりになります。

筆者が謎検の勉強を始めた頃は、覆面算まで虫食い算と同じ感覚で押し切ろうとして泥沼にはまりました。
ところが、数字の穴埋めではなく、同じ文字が同じ数字を表すという対応関係を意識した瞬間、手が止まらなくなったのです。
虫食い算は「どの数字が入るか」を探す問題ですが、覆面算は「対応の法則」を先に見抜く問題だと分かると、見える景色が変わります。

覆面算は『同じ文字に同じ数字』が追加ルール

覆面算は、数字をアルファベットや漢字に置き換えた計算パズルです。
ここで効いてくるのが、「同じ文字には同じ数字、違う文字には違う数字」という強い制約になります。
つまり、1文字ごとに自由に数字を入れるのではなく、式全体で整合する割り当てを探さなければなりません。
そのため、使える異なる文字は最大10種類までという上限が生まれます。
0〜9の10個しか数字がない以上、ここは物理的な限界です。

この制約は、慣れるとむしろ強力なヒントになります。
謎検の勉強で苦戦していた時期、筆者もこの前提を外して考えていたせいで、候補を広げすぎてしまいました。
逆に「同じ文字=同じ数字」と割り切ると、たとえばある文字が1回決まれば式全体の複数箇所が連動して埋まります。
ワークショップで「先頭に0は入らない」と板書すると、参加者の半数がそこを起点に最上位の桁を埋め始めます。
たった1行でも、入口としては十分に機能するのです。

解は1通りに決まる、という暗黙の前提

虫食い算と覆面算には、ほぼ例外なく「解は1通りに決まる」という暗黙の前提があります。
解いていて2通り以上の可能性が残るなら、どこかの条件を見落としている合図だと考えてよいでしょう。
特に先頭ゼロ禁止は、最初の絞り込みを生む重要なルールです。
最上位の桁に0を許すと別解が増えやすく、問題としての輪郭がぼやけてしまいます。

この一意性は、解法の検算にもつながります。
候補が複数残るなら、繰り上がりや位取りの扱いが甘い可能性がありますし、逆に1つに収束したなら筋道が通っている証拠になります。
覆面算を解くときは、左から右へ見た目を追うのではなく、位ごとの条件と先頭ゼロ禁止を足場にして、解が1本に収束するかを確かめていきましょう。
虫食い算でも覆面算でも、この考え方が土台になります。

解く前の3つの大原則:どこから手をつけるか

虫食い算で最初に見るべきなのは、空欄の多さではなく確定している情報の密度です。
答えの形が見えている桁や、先頭ゼロ禁止で候補が限られる桁から入ると、そこで決まった数字が次の桁の条件を狭め、解き筋が連鎖します。
逆に、見た目が埋めやすい一の位から機械的に進めると、かえって遠回りになることがあります。

原則1:確定している桁から芋づる式に埋める

虫食い算は、空欄を順番に埋める作業ではありません。
与えられた数字が多く、候補が少ない桁を先に押さえると、その結果がほかの桁の制約になり、芋づる式に全体が絞れていきます。
筆者がイベントで配られた虫食い算を解いたときも、まず最上位だけ眺めて「ここは1か2だ」と当たりを付けました。
入口を変えただけで、周囲より十数分早く終わりました。

原則2:位ごとに『繰り上がり込み』の式を立てる

各桁は独立していません。
足し算なら一の位の結果が10を超えた瞬間に十の位へ1が渡り、次の桁はその分だけ式が変わります。
だからこそ、位ごとに「この桁の数」と「繰り上がり」をセットで見る必要があります。
初心者が一の位から埋めようとして止まったときも、「一番情報の多い桁はどこ?」と問い返すと、十の位や最上位に視点が移り、自力で解き直せることが多いです。
引き算でも「引かれる数=引く数+差」と捉え直すと、同じ発想で整理できます。

原則3:繰り上がりは0か1しかないと決め打つ

1桁+1桁の足し算では、繰り上がりは0か1しかありません。
最大でも9+9+1=19だからです。
この上限を先に固定すると、場合分けは一気に2通りへ圧縮され、総当たりのような迷いが消えます。
かけ算でも考え方は同じで、末尾の数から候補を少数に絞り込めます。
答えの最上位の桁は、先頭ゼロ禁止に加えて、桁数が増えていれば1で確定することが多く、最初に疑うべき特異点です。
ここを押さえると、式全体の輪郭が早く立ち上がります。

足し算・引き算の虫食い算の解き方

足し算と引き算の虫食い算は、桁ごとの処理順をつかめば一気に見通しがよくなります。
まず一の位を確定し、10以上なら十の位へ繰り上がり1を持ち越す。
この流れを守るだけで、式全体を上から眺めて迷う場面が減ります。
引き算も、引かれる数=引く数+差という足し算に直して考えると、繰り下がりを繰り上がりの感覚で扱えるので解きやすくなるでしょう。

一の位から処理し繰り上がりを追う

足し算の虫食いは、一の位から順に確定するのが基本です。
たとえば一の位の和が7ならそのまま7、12なら一の位は2で十の位へ繰り上がり1が発生します。
ここで大切なのは、見えていない桁をいきなり当てにいかないことです。
先に目の前の一桁を確定し、その結果として繰り上がりが出るかどうかを見る方が、計算の筋道がぶれません。

この手順は、2桁+2桁で1桁伏せるような簡単な例題でもそのまま使えます。
一の位を足して答えを決め、次に繰り上がり1を前提に十の位を見直すだけで、式の全体像が自然に固まっていきます。
小学生向けワークショップでも、この順で説明すると理解が速いです。
数字を上から追うより、右から順に確かめる方が、手が止まりにくいのです。

繰り上がりの有無で2通りに場合分けする

和が確定しても、繰り上がりの有無だけが決まらないことがあります。
そのときは、繰り上がり0と1の2通りに分けて考えます。
紙の上で2列に並べて書くと、どちらの仮定が他の桁と矛盾するかを比べやすくなります。
混乱していた参加者が、自分で矛盾を見つけて片方を捨てられるようになったのは、この書き方を徹底したときでした。

場合分けは遠回りに見えて、実は最短ルートです。
1つに決め打ちすると、あとでつじつまが合わずに戻ることがありますが、2通りを並べれば、合わない方が自然に落ちます。
考え方としては、仮説を立てて検証する小さな実験に近い。
おすすめです。
迷ったら、まず0と1を並べてみましょう。

引き算は足し算に逆算して攻める

引き算の虫食いは、そのまま引き算で追うより、引かれる数=引く数+差に直すと一気に楽になります。
引き算は繰り下がりが絡むと見た目がややこしくなりますが、足し算に置き換えると、求めるのは「足して元の数になる組み合わせ」だと見えるからです。
筆者が小学生向けワークショップで教えるときも、必ずこの形に直して見せます。
「引き算が消えた!」と子どもが目を輝かせる瞬間が、この単元の一番のやりがいです。

たとえば差がわかっていて引かれる数の一部が伏せられているなら、まず差を足して元の数を組み立てます。
そのうえで、繰り下がりが起きるなら繰り上がりとして見直すと整理しやすいです。
足し算に戻すと、必要なのは桁ごとの条件確認だけになる。
虫食い算の中では、これがいちばん扱いやすい進め方でしょう。
まず足し算へ戻してみてください。

かけ算の虫食い算は『一の位』で一気に絞る

かけ算の虫食い算で手が止まるのは、未知の桁を全部いっぺんに考えようとするからです。
実は、答えの一の位だけに目を向ければ、途中の繰り上がりに邪魔されず、先に候補をぐっと狭められます。
筆者も謎検対策で苦しんでいたころ、講師に「答えの一の位だけ見ろ」と言われて、難問が一気に2択問題へ変わる感覚を味わいました。

一の位の積は他の桁に影響されず確定する

かけ算の一の位は、かける数と かけられる数 の一の位どうしだけで決まります。
たとえば 37×24 なら、答えの末尾は 7×4 の計算だけで見ればよく、十の位や百の位でどれだけ繰り上がりが起きても、その結果が末尾を書き換えることはありません。
ここが加減算と違うところで、未知数が多く見えても、最初に見る場所は驚くほど小さいのです。

ワークショップで「□×4 の一の位が8」という問題を出すと、最初は手が止まる人が少なくありません。
ところが九九を末尾だけ追えば、4を掛けて8になるのは2と7だけだとすぐ分かります。
表情が変わる瞬間です。
全体を解く前に、まず2択まで落とせる。
この感覚をつかむと、虫食い算は“広い問題”ではなく“狭い探索”になります。

部分積(中間積)から逆算する

2桁×2桁の虫食い算では、答えを作る途中で部分積が2行できます。
ここでも一の位の手筋がそのまま使えます。
各部分積の末尾を別々に絞っておき、最後に1桁ずらして足した結果と照らせば、候補の整合性を確かめられるからです。
途中式を一気に眺めるのではなく、末尾→部分積→合成の順に追うと、計算の見通しがよくなります。

例えば 2桁×2桁 で片方の一の位が4なら、まず部分積の末尾を4の段で読むところから始めます。
すると、ある桁は2か7、別の桁は1か6というように、候補がそれぞれ小さくまとまるはずです。
そのあとに1桁ずらして足し合わせると、末尾だけでなく十の位のつながりも見えてきます。
部分積は単独で正しいだけでは足りず、合成したあとに全体の答えと矛盾しないことまで見るのがコツです。

候補を2つに絞り検算で1つに決める

末尾で候補が2つ残っても、そこで止まらないでください。
十の位以上の繰り上がりまで含めて検算すれば、たいてい1つに決まります。
筆者が苦しんでいた頃は、候補が多いまま力で押し切ろうとして時間を失っていましたが、先に2択まで絞ってから総当たりする形に変えた瞬間、解く速さが安定しました。
おすすめです。

この方針は、虫食い算を「全部を当てる問題」から「少数候補を消去する問題」に変えます。
たとえば □×4 の末尾が8なら 2か7 まで絞れますし、そのあと別の条件で検算すれば答えは1つに収束します。
ワークショップでも、最初に止まっていた人ほど、2択に変わった途端に手が動き出しました。
まず末尾を見る、次に部分積を見る、そして最後に検算する。
これを繰り返してみてください。

割り算の虫食い算は『大きい位から』が鉄則

割り算の虫食い算は、右端から埋めるよりも左の大きい位から見るほうが、ずっと筋道が立ちます。
割り算は足し算やかけ算と逆向きに進むので、商の上位から1桁ずつ決めていくほうが、筆算の流れに自然に乗れるからです。
筆者も昔は右から探っては行き詰まっていましたが、着手点を反転させただけで見通しが一気によくなりました。

商の左の桁から1つずつ確定させる

割り算の筆算虫食いは、商の大きい位から順に埋める問題です。
まず左の桁で「この位には何が入るか」を決め、次に割る数を掛け、引き算して余りを出し、その余りに次の桁を下ろす。
この繰り返しが基本なので、最初に右端へ手を伸ばすと、まだ見えていない前提まで同時に推理しなければなりません。
反対に左から進めれば、すでに確定した桁が次の判断材料になるため、虫食いでも崩れにくいのです。

各段を『かけ算→引き算』に分解する

各段は、見た目以上に単純です。
商の1桁が決まれば、その段で引くべき数は「商×割る数」として一意に定まります。
つまり、割り算の筆算は商の各桁ごとに『商×割る数』を引く処理の繰り返しであり、かけ算の手筋と引き算の手筋が同じ場所で合流しているわけです。
ここが分かると、虫食いの空欄は暗記ではなく、手順の復元として読めるようになります。

たとえば「□3 ÷ 4 = 2□」のような簡単な問題なら、左の位でまず商の先頭を確定し、そこから引き算の結果を次の段へつなげていけます。
1問を通して見ると、右側の数字は左側の判断に従属していることがよく分かるでしょう。
筆者が参加者にこの順で解いてもらうと、途中で止まっていた人ほど表情が変わります。
おすすめです。

余りの大きさで候補の正誤を判定する

検算で特に強いのは、余りの大きさです。
引き算後の余りは必ず割る数より小さくなければならず、これを超えていたら、商の桁が小さすぎるか、引くべき数を取り違えています。
余りの桁数チェックで誤りに気づけるので、候補が合っているかどうかをその場で判定できるのが利点です。
余りが割る数以上なら、その解答は一度立ち止まって見直しましょう。

指導の場で、余りが割る数以上になっている解答を持ってきた参加者に「余りはいくつまで許される?」と問い返したことがあります。
すると本人が自分で矛盾に気づき、商の桁を修正できました。
こうしたやり取りは、正解を先に教えるよりも記憶に残ります。
虫食い算は、答えを当てる遊びではなく、条件で候補をふるい落とす遊びだと捉えてみてください。

覆面算の名作SEND+MORE=MONEYで総仕上げ

SEND+MORE=MONEY は、覆面算の中でも原則の効き方が最も見えやすい名作です。
4桁+4桁の和が5桁になる以上、最上位の M は 1 に決まります。
ここを起点にすると、残りの文字も繰り上がりと整合する形で一気に絞れます。

最上位の桁から繰り上がりで攻める

SEND+MORE=MONEY では、4桁どうしを足した結果が5桁になっている時点で、最上位に新しく現れる M は 1 で確定します。
これは「どの桁から見るか」で難度が変わる好例で、末尾から総当たりするより、まず答えの器そのものを確定させるほうが解く手順を大きく短縮できます。
筆者が初めて答えを見ずに解き切ったときも、この M=1 に気づいた瞬間に視界が開けました。
そこから先は、ほぼ一本道でした。

M が 1 と決まると、左端の S は 8 か 9 に絞られます。
S に M を足したうえで、さらに繰り上がりが起きて最上位へ伸びる必要があるため、9 に近い値でなければ条件を満たせないからです。
ワークショップでこの問題を出すと所要時間に差が出ますが、「答えが5桁だから M は 1」というヒントを1つ置くだけで、全員の手が進みます。
たった1手の着眼が勝負を変える場面です。

同じ文字の制約で候補を連鎖的に削る

覆面算の武器は、同じ文字には同じ数字しか入らないという厳密な制約です。
SEND+MORE=MONEY でも、E や N のように複数箇所へ現れる文字は、ある桁で仮に置いた値がそのまま別の桁の式を縛ります。
すると、1つの候補を試すたびに他の候補がまとめて落ちていき、単純な当てはめの問題ではなく、連鎖的な消去の問題に変わります。
ここが覆面算らしさでしょう。

この問題を解くときに面白いのは、3原則が別々に働くのではなく、互いを補強することです。
最上位優先で M を固め、繰り上がりは0か1で考え、条件分岐を最小限に保つと、残る文字の配置が自然に収束していきます。
S が 8 か 9 に絞れたあとの判断も、各桁の足し算を一度ずつ確かめるだけで済むようになります。
複雑に見える問題ほど、制約を味方にするとむしろ見通しがよくなるのです。

完成解 9567+1085=10652 を検算する

最終解は 9567+1085=10652 です。
対応する割り当ては S=9,E=5,N=6,D=7,M=1,O=0,R=8,Y=2 で、左辺と右辺がきれいに一致します。
ここまで来ると、答えそのものよりも、最上位から順に条件をほどいていった過程の美しさが際立ちます。

検算すると、各桁の繰り上がりが無理なくつながり、同じ文字に同じ数字を当てる約束が全体を支えていることがはっきり見えます。
SEND+MORE=MONEY が名作と呼ばれるのは、難問だからではなく、原則を守ると解ける形でできているからです。
解が 1 通りに定まる心地よさは、最後まで筋道を追った人だけが味わえるご褒美だと思います。

解が1つに決まる虫食い算・覆面算の作り方

完成した式を起点にするのが、虫食い算や覆面算を一意に仕上げるいちばん確実な方法です。
見た目のよさから先に組み立てると、解けるはずの式にならなかったり、答えが複数残ったりしやすいからです。
まずは成立する計算を作り、そこから空欄や文字へ置き換えていきましょう。

完成した計算式から空欄・文字に置き換える

作り方の出発点は逆転の発想です。
先に完成した計算式を作っておけば、どの桁を伏せると難度が上がるか、どの数字を文字に変えると覆面算として自然かを後から選べます。
ゼロから記号を並べるより、解ける式から逆算した方が設計の筋が通りやすいのはそのためです。
社内イベント用に初めて覆面算を自作したとき、見栄えのいい式にこだわったせいで答えが3通り出てしまい、当日まで気づきませんでした。
あの失敗で、作る前に「解ける式」を持つことの価値を痛感しました。

覆面算では、異なる文字が0〜9に対応するので、使える種類は最大10種類です。
ここを超えると、そもそも割り当て先が足りず、問題そのものが成立しません。
だから単語を選ぶ段階で、文字数の多さや語の組み合わせを必ず確認します。
見栄えだけで長い言葉を採るより、制約内で収まる題材を選ぶ方が、参加者にとっても解き筋が見えやすくなります。

解が1通りかをソルバーや総当たりで確認する

完成したら、総当たりやオンラインのソルバーで解が1通りかを必ず確かめます。
自作問題で怖いのは「解けない」ことより「解けるが複数ある」ことだからです。
作り手の目では、筋の通った式ほど一意に見えてしまいますが、実際には別の数字の組み合わせが残っていることが珍しくありません。
筆者はこの確認を、制作の最後ではなく必須工程として組み込むようになりました。
作る楽しさを守るためにも、検証は省かない方がいいでしょう。

制作ワークショップでも、参加者と一緒にソルバーで確かめるだけで、問題づくりの理解が一気に深まります。
式を置く位置を少し変えただけで候補が増えたり減ったりするので、解く側の視点がそのまま作る側の勘所になるからです。
チェックは面倒な作業ではなく、作品の完成度を上げるための観察です。

多解なら条件追加か連立で一意に絞る

多解だった場合の対処は、主に2つです。
1つ目は、「Aは奇数」のような条件を1つ足して、候補を絞る方法です。
条件付き覆面算にすると、見えている式そのものは変えずに制約だけを補強できるので、題材の雰囲気を保ったまま難度を調整できます。
2つ目は、同じ文字を共有する複数の式を連立させる方法です。
式同士が互いを縛るため、単独では残っていた解が組み合わせとして一意に定まりやすくなります。

条件を1つ足しただけで多解がすっと1通りに収まる瞬間は、作り手にとっても気持ちのいい場面です。
参加者と試した制作ワークショップでは、ひとつの制約を加えた途端に盤面の見え方が変わり、解く手応えが一気に立ち上がりました。
作る楽しさは、解く楽しさの裏返しでもあるのです。
おすすめの進め方は、まず完成式を作り、次に一意性を検証し、最後に必要なら条件か連立で調整する流れでしょう。

シェア

真鍋 奏人

謎解きイベント参加歴8年、累計300回以上の参加経験を持つ謎解きマニア。謎検1級取得。攻略テクニックの体系化をライフワークとしています。

関連記事

テクニック

謎解きは、五十音表や暗号変換、言葉遊びの型を見抜く力と、手がかりを前に柔らかく発想を切り替える力で上達する遊びです。学力よりも、この二つのスキルをどれだけ訓練してきたかで差がつきます。筆者も始めたばかりの頃は、簡単な五十音表の謎が解けずに才能を疑いましたが、定番パターンを覚えた途端に見え方が変わりました。

テクニック

ヴィジュネル暗号は、鍵の文字数ぶんだけ異なるずれを使い分ける多表式暗号であり、シーザー暗号がずれ1種類なのに対して最大26種類のずれを順番に適用します。つまり、同じ平文の文字でも位置によって別の暗号文字に変わる仕組みで、見た目は難しくても「シーザー暗号の合わせ技」と考えるとぐっと掴みやすくなるはずです。

テクニック

数字暗号は、数字を文字へ当てはめる換字式と、表の座標や何文字目かを指す位置参照式に大別できる暗号です。謎解きイベントで数字列に10分ほど詰まったときも、桁数と最大値を声に出して確かめた瞬間に型が割れ、解き筋が一気に見えました。

テクニック

顔文字暗号は、謎解きで使われる換字式暗号の応用であり、文字や数字の暗号は解けるのにここだけ手が止まる人へ向けて、ひらめき任せをやめて再現できる手順に落とし込むための記事です。