正方形を(プログラムで)見つけよう

文責 SatoshiMcCloud
2013年5月23年 執筆

最近はやっているネタに、こういうのがあるらしい。

正方形を31個見つけたら人材、35個は天才、40個以上はアップル社の面接行ったほうがいいらしい(笑)
という触れ込みでこの画像がtwitter上で大流行したらしい。
実はこことかによると、 本来は41個見つけたら…というのの誤訳で、そのため元々のジョークからかけ離れた意味になってしまっているらしい。

そんなことはともかく、これをプログラムで解くというのは練習としてなかなか面白いと思い、プログラムを書くことにした。
最近Javaを勉強し始めたので、せっかくなのでJavaで書いてみた。


ソースコード:SquareSearch.java
なお、このプログラムでは上記の画像をテキストデータ化したものを読み込ませる。
テキストデータにしたものはこれ

なお、プログラムを実行して得られた回答は40個だった。
やはり正方形は40個しか見つからないようである。。。
手動とはいえ何万人単位での大勢の人がチェックしたんだもの、40個より多くなわけないかぁ。


ところで、これの関連ネタでこんなのもあった。

正方形を12,482個の見つけたら暇人。1,004,960個見つけたら数学好きだと思います :-) twitter.com/tatt61880/stat…

— Tatt (タット)さん (@tatt61880) 2013年5月18日
何を隠そう、今回のプログラムはこの問題を解くために書いたのだ。
というわけで、これをテキストにしたのがこっち。それなりに重いのでブラウザで開くときは注意。
プログラムを実行しこちらを読み込ませたところ、1004960個という解答が得られた。
計算時間は大体20秒くらい。そういう話は実行環境スペックとかが絡んでくるのでアレだけど。
これを実際に数えていたらどれだけ時間が掛かっていただろう…やはりプログラムは偉大だね。


どうでもいいが、この内容をもってアップルの面接にいったらどうなるんだろうなぁ。
アップル社的にはObjective-C推しだから、そっちでコード書き直してくださいとか言われるんだろうかなぁ。

inserted by FC2 system