「虫食算」をプログラミングで解いてみよう
昔とある数学サイトに下記のような虫食算が公開されていた。
A AB ABC ABCD ABCDE ABCDEF ABCDEFA + ABCDEFAB -------------------- ALPHABET
A、B、C、D、E、F、L、P、H、Tがそれぞれ異なる1桁の数字を表しており、
これを上記の筆算で計算して成り立つ10桁の組み合わせを求めよ、
というものである。
通常「虫食算」と言われると
15 +3■ ------ 51
というふうに、筆算内の一部が「虫食い」状態になっててわからないケースのものを想像するが、
この問題は筆算内の全ての数字が「虫食い」状態になっててわからないという(もはや「虫食い」ですらない)なかなか強烈な問題である。
「虫食算」という時点で分野的には「算数」になるのかもしれないが、
追求していくとなかなか奥が深くて難しい。(少なくとも「算数」しか知らなかった時代の俺ではこれは解けない…)
頑張れば解けるのかもしれないが、ふと、「これを解くプログラムをつくってみよう」と思い立ち、挑戦してみた。
ここでその記録を残す。