UCCプレゼンツ桑田さんの年末ライブに行くためにPythonプログラム組んだ
さて
自分は大のコーヒー党なのである。仕事をしながら1日1本ペースで缶コーヒーをちびちび飲んでいる。缶コーヒーは自販機やコンビニで買うと1本120円〜130円取られてしまうのでいつも近所のホームセンターで箱買いしている。
275gのリキャップ缶24個入りの箱がだいたい2000円ちょっとで買えるので、1本あたりにすると90円を切る。コーヒー好きにはお勧めしたいライフハックである。
UCCブラック無糖のキャンペーン
いつもUCCブラック無糖を買うのだけど、今回買った缶には桑田佳祐年末ライブレポーター募集キャンペーンの応募シールがついていた。
茅ヶ崎市出身の自分は当然のようにサザンオールスターズおよび桑田さんが大好きなので、これは応募しないわけには行くまい。具体的にはキャンベーンサイト上で応募シールに記載のシリアルナンバー14桁をシコシコと入力していくのである。
桑田さんの年末ライブに応募するために、これからシコシコシリアルナンバーを登録していきまーす! pic.twitter.com/Qie5FlndQz
— iGCN (@iGCN) 2016年12月10日
24缶入りの箱を2箱買ったので、48缶分のシリアルナンバーを入力するのは正直骨が折れたわ。記憶力が年齢とともに衰えてきたせいで5桁ずつくらいしか入力できないし、時には入力間違えてエラーが出るし。
キャンペーンの商品は3種
ところで今回のキャンペーンのメインの商品は桑田佳祐年末ライブへの招待券なんだけども、他にも豪華商品が用意されている。すなわち、
- A賞:桑田佳祐年末ライブレポーター 50組100名 シリアルID 10枚で応募
- B賞:桑田佳祐xUCCオリジナルMA-1ジャケット 500名 シリアルID 5枚で応募
- C賞:桑田佳祐xUCCオリジナルTシャツ 3000名 シリアルID 3枚で応募
である。
ぶっちゃけ当選確率だけを考えれば、ライブレポーターに応募するより全額C賞にぶっこんだほうが良いのだろうけど、たまにはちょっと夢見てもいいじゃない?そしてオリジナルのMA-1ジャケットもなかなかカッコイイので気になるところ。
というわけで、手元にあるシリアルID48枚を最大限有効活用するための組み合わせを検討してみた。
Pythonプログラム組んだ
ここでの問いは
Q. 48枚のシリアルIDを3枚、5枚、10枚に振り分ける組み合わせは何通りあるのか
というものになる。これはプログラミングの世界では有名な「両替問題」に相当する問いである。
この問いに答えるために、久々にPythonでプログラムを組んでみた。同じく両替問題を扱ったこちらの記事(俺のサブブログだけど)を参考にした。
いまだに現金払い?:「プログラマ脳を鍛える数学パズル」Q05の答え - Pythonで解く数学パズル
回答プログラム
import itertools a = 0 coins = [3, 5, 10] for n in range (4, 17): for combi in itertools.combinations_with_replacement(coins, n): if sum(combi) == 48: print combi a += 1 print a
結果
このプログラムを走らせた出力がこちら。
(3, 5, 10, 10, 10, 10) (3, 5, 5, 5, 10, 10, 10) (3, 5, 5, 5, 5, 5, 10, 10) (3, 3, 3, 3, 3, 3, 10, 10, 10) (3, 5, 5, 5, 5, 5, 5, 5, 10) (3, 3, 3, 3, 3, 3, 5, 5, 10, 10) (3, 5, 5, 5, 5, 5, 5, 5, 5, 5) (3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 10) (3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5) (3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 10) (3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5) (3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) 12 Process finished with exit code 0
組み合わせは全部で12通り。
夢見がちな自分だけども、ここは現実を見て、
A賞 x 3, B賞 x 3, C賞 x 1
の組み合わせで応募した(上から2番目の組み合せ)。
さいごに
当選したらまたこちらで報告します。ちょっとした問題の答えを探すのに、プログラムが組めると便利だなと実感しました。
ちなみにキャンペーンの応募期間は明日12/12が締切。
では
註:amazonで買うとホームセンターで買うより高いです。