コインを減らす払い方

どう書く?orgに、「コインを減らす払い方」という問題があります。

http://ja.doukaku.org/3/

この問題が、総当り方式でも難しいと思いました。

id:ytakenaka:20070703:p2 で、ytakenakaさんが、釣り銭候補のルール書かれているのを前に読んでいたんですが、やはり難しいです。

それなのに、普段コンビニとかでお金を払うとき*1には、それ程意識せずに、小銭が減るように払っています。

なんか奇妙な感覚に落ちいりました。

「人間の脳ってすごいな」ということと同時に、「これをプログラムで表現できない俺の脳ってひどいな」と思っている自分がいました。


問題を解く方向ではなく、普段どうやって払う金額を決めているんだろうか、ということを考えていました。

1次的な目的は、値段の金額を店員に渡すことなので、以下は2次的な目的です。

  • お釣りの枚数を減らしたい
    • 値段が 92円のとき、102円払うような場合
  • 財布の小銭を減らしたい
    • 財布に、100円玉があるのに、10円玉を10枚払うような場合
  • 両替したい
    • 値段が 300円のとき、わざと 1万円札を払って千円札を貰う場合

しかも、1回の支払いで複数の目的を達成したいこともあります。

なんか、ロジックを作れない言い訳を書いてる気分になってきましたが、なんとかCommon Lispのコードまで持っていきたいと思ってます。

*1:セブンイレブンでは、nanacoカードにしましたが

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.