041021.jpg

昨日の「盗賊の人数」という算数の問題をプログラムで解いてみる。

プログラムの解き方はとても自然というか、誰でも思いつくものだ。

つまり、xを1から39まで変化させる。それで y=40-x でyが決まり、盗んできた金貨と銀貨の数をそれぞれ 7*x、6*y になり、最後に余り計算をし、余りのないペアが答えとなるわけだ。

Cプログラム または Perlスクリプト ← ダウンロードの際、ファイル名を適切に直して下さい

プログラムの答えは勿論筆算と同じ。

さて、ここからが面白い。

プログラムなので、盗賊の人数を適当に増やしてやって、答えのペアが1組のみのものを探すことが簡単にできる。

例えば、盗賊の人数を2001としたとき、(x,y)=(1334,667) になる。1ペアしかないので、5の倍数云々とか余計な条件もつけなくていい。

このように、筆算ではパラメータによって難しさがだいぶ変わるが、プログラムのほうでは同じアルゴリズムで解ける。

なにかプログラムのほうが自然的というか、論理的だね。

Comments are closed.

Post Navigation