JSP_Blog

ジェイエスピー社員が綴る日替わりブログ

パズル

2015-08-18 08:55:00 | 日記

 毎年恒例のインターンシップが始まった。初日は緊張で固まりきっていた学生が、最終日には随分解きほぐれ、生き生きと発表している姿は、何度見ても心地良い。我が社のインターンシップでは簡単にAndroidアプリを作成するツールを使用して、オリジナルのアプリを作成し、最終日にインターンシップで学んだこと、及び作成したオリジナルアプリの発表を行う形式で実施される。

 みなさん短期間で作成したとは思えないような個性豊かなアプリを作成するのだが、その中の一つがジャンケンアプリ。よくあるアプリではあるが、ひと工夫してあり、背景が青いときは勝つものを、黄色いときはあいこのものを、赤いときは負けるものを選ばないといけない。やってみた結果は惨敗。青や黄色のときはそれほど問題ないのだが、赤が出て来た時点で頭が混乱し、正解が選べなくなってしまう。他の人達がすいすい正解を出しているのを横目にみながら、随分と頭が固くなってしまったなとかなりショックを受けた。

 随分と錆付いてしまった脳を少しでも活性化しないとと思い、引っ張りだした本が「数理パズル」の本

 学生の頃購入し、何となく捨てきれないまま、ずっと所有している。1976年に出版の随分古い本であるが、最新のものを除き、覆面算、ハノイの塔、エイトクイーン、四色問題、等々有名どころは一通り網羅されている。ライフゲームなどもこの書籍で初めて知ることができた。本の中で説明されている覆面算について紹介してみたい。

 一部の数字が隠されているものは虫食い算と呼ばれていたりするが、何らかの数字以外の記号に置き換えられている計算式を、論理的思考によって正しい数字に戻していくパズルである。同じ記号には同じ数字が必ず入っている。今でも記憶に残っているのは下記の式。

  SEND
 +MORE
------
 MONEY


直訳すれば「もっと金送れ」。文の面白さとともに、答えの導きやすさも併せて例題にもよく使用されている。

問題を考えてみる。まず着目するのは「M」。
S+M=MO,下位からの繰上りがある場合はS+M+1=MOとなる。とりあえずアルファベットを無視して考えてみた場合、最大の数字は9+9=18,9+9+1=19となり繰り上がる数字が1を超えることはありえない。よってMは「1」で確定する。

Mが1だとするとS+1=10+O or S+1+1=10+Oとなる。Sが7以下の場合は繰上りが発生しないため、Sは8または9となる。

9+1=10,9+2=11,8+1=9,8+2=10から考えると、繰上りが発生しない3番目の式は除外。「1」はMと確定しているため2番目の式も除外。成り立つのは1番目と4番目となるため、O(オー)は「0(ゼロ)」で確定する。

次に着目するのが百の位。O(オー)はゼロと確定しているため、E+0=Nは成り立たない。十の位からの繰上りが必ず発生していることになる。E+1=Nから考えるとこの桁が繰り上がるケースはEが9の場合のみとなる。しかし9+1=10であり、Nがゼロとなってしまう。ゼロはオーで確定しているためEは9ではない。そうすると百の位での繰上りは発生していない。千の位を考えると S+1=10。よってSは9で確定する。

  9END
 +10RE
------
 10NEY


十の位が必ず繰上げが発生することを考えると、N+R=E+10 または N+R+1=E+10。
E+1=Nなので1番目の式はR=9となってしまい、9はすでに確定しているため除外。
よって2番目の式からR=8。1の位も繰上げがあることが確定する。

  9END
 +108E
------
 10NEY


EとNの取りうる組み合わせは下記の通り
(2,3)(3,4)(4,5)(5,6)(6,7)

一桁目は繰り上がるため、式としてはD+E=10+Yとなる。E,Dについて考えてみる。
Eが2だとするとD候補は8,9だが、8,9すでに確定しているためEは2でない。
Eが3だとするとD候補は7,8,9だが、8,9は上記の通り、7はYが0となってしまうためEは3ではない。
Eが4だとするとD候補は6,7,8,9だが、8,9は上記の通り、6,7はYが0,1となってしまうためEは4ではない。
Eが6だとするとD候補は4,5,6,7,8,9だが、8,9は上記の通り。同じ数字の6も除外。4,5はYが0,1となるため除外。7は一見大丈夫そうだが、Eが6の場合、Nは7となり、NとDが同じ数字となってしまうため除外。よってEは6では無い。
Eが5だとするとD候補は5,6,7,8,9。同じ数字の5は除外。Yが1となる6も除外。8,9も除外。7の場合は問題なし。
ここでE=5,D=7,N=E+1=6と確定する。7+5=10+YからY=2となりすべての数字が確定する。

  9567
 +1085
------
 10652


 久しぶりに自力で解いてみたが、思った以上に時間がかかってしまった。もっとスマートな解き方もあると思うのでぜひみなさんもチャレンジしてみてもらいたい。

ここに挙げた覆面算以外にも様々な数理パズルが専門雑誌やWeb上で公開されている。使わないとどんどん衰えていく脳を少しでも鍛えるために、頭のストレッチとして取り組んでみてはいかがだろうか。(池)

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする