« 安物RCカーで悩む | トップページ | THE MANZAI 2014で悩む »

2014年12月20日 (土)

ちょっとした計算で悩む

項番
金額
1 2,130
2 390
3 2,070
4 1,410
5 390
6 2,010
7 1,980
8 1,500
9 390
合計 12,270
内訳1 5,100
内訳2 7,170
職場で急に「ちょっと相談したいことが・・・」とか言われちゃって、なんのことかと思ったら、「算数苦手なので」と言いながら問題を出されてしまった。

要は、左のような9件の金額(関係ないが単位は円ではない)をふたつのグループに分けて、それぞれ5,100と7,170になるようにしてほしい、というのだ。それって算数か?

話の本筋とは関係ないが、ここのBlogはこんなふうに表と文章を並べるのが苦手で、実際のところ書いている現在ではどんな風に見えるのか見当が付いていない。見た感じ不細工になるかも知れないが、ご勘弁を。

で、問題解決のためにはかっこよくはないけれども総当りでやるしかないかな、ということで10分くらいで小さなプログラム書いて、答えを出した。

出した答えは「ない」。つまりどうやって分けても5,100と7,170には分けられない、ということがわかったのだ。出題者も「それなら仕方がない。答えがないことがわかっただけでも収穫だ。」と納得してもらった。

納得してもらったのはいいけれども、計算が違っていたりすると後々面倒なことになるので、EXCEL上で同じような計算をして確認してもらうことにした。ついでだからここにもおいてみよう。

「wakeru.xls」をダウンロード

初めからEXCELで作っても良かったのだが、頭がどうもプログラム的になっていて、そっちの発想で考えるものだから、EXCEL化するほうに苦労したりする。冷静に考えると、最初からEXCELで作ったほうが早かったかもしれない。


で、話がこれで済むはずもなくて(仕事の話だからね)、追加出題があった。

「実は9件のデータはそれぞれ3ヶ月分なので、それぞれを3等分して計算すれば5,100とか7,170とかになるかもしれない。」というのだ。

まぁいいんだけど、前回は9件だから2の9乗で512通り計算すれば済んだのだが、これが27件になると、ええと1億3千通りとかになりますが。

とかいいつつプログラムの方では簡単に修正できるのでとりあえず始めてみたわけだけれども、これが一向に終わらない。略式で計算してみると数時間は掛かりそうだ。

計算を走らせながら「当分かかるよ」ということを言っていると、「ヒントがある。5,100の方に分類されるはずのものがある程度わかっている」という。そのヒントを考慮すると、件数を21件まで減らすことが出来た。しかしそれでもまだ200万通りくらいの計算量だ。

こんどの計算は数分で終わった。終わったのだが、しかし該当する組み合わせが400通り近くある。その中からどうやって正しいものを見つけるのだ?

ううむ、と腕組みをしつつ、データをよくよく眺めると、組み合わせは限られているではないか。つまりこんなかんじなのだ。

130 470 130 470 130 130 130
130 130 470 130 130 470 130
130 470 470 130 130 130 130
470 130 130 470 130 130 130

要するに、470×2+130×5で1,590になっていて、あらかじめ5,100に含まれるとわかっている分の3,510を足してめでたく5,100になる、ということになってお悩み解決!。

|

« 安物RCカーで悩む | トップページ | THE MANZAI 2014で悩む »

パソコン・インターネット」カテゴリの記事

コメント

難しくて良く判らない。

入金額を3ヶ月に渡り分割で支払われた物が口座上ではごっちゃになったとかかな?。


昔,妻が経理をしてた頃,1つのクライアントで同時並行で実施している複数の仕事の代金を,一括で振込まれるのでプロジェクト毎の帳簿に仕分けるとかで請求金額と入金額を見比べてパズル見たいな事をしてたけど,そんな話しですね。

投稿: ををつか | 2014年12月21日 (日) 08時20分

課題として与えられたこと意外は全然わからない。あえて聞かないようにしてたし。

スクリプト・プログラミングできると便利!みたいな話にしたかったのだが、EXCELでできちゃうので話の着地点が思惑と違ってしまった。

投稿: PicksClicks | 2014年12月21日 (日) 11時16分

コメントを書く



(ウェブ上には掲載しません)




« 安物RCカーで悩む | トップページ | THE MANZAI 2014で悩む »