問題を解くためのアルゴリズムを発想し、それをコードで書いて答えを導き出す。そんな数学パズル70問を収録した『プログラマ脳を鍛える数学パズル』は、多くの人を楽しませてきました。
2月19日(月)には、その続編『もっとプログラマ脳を鍛える数学パズル』が新たな70問を収録して皆さんの前に立ちはだかります。
今回は新作の発売を記念して、ここだけのオリジナルクイズを出題。正解者の中から3名に、著者・増井敏克さんのサイン入り本をプレゼントします。
解答の応募は2月18日(日)まで。ちょっと息抜きしたい方も、数学パズル好きも、はたまた是が非でも本書を手に入れたい方も、ぜひ挑戦してみてください!
問題:本の発行部数のパターンは何通り?
最初に印刷・発行された本のことを「初版」と呼びます。たくさん売れて初版の残りが少なくなったときには追加で印刷・発行しますが、これは「増刷」と呼ばれ、売れ行きの目安として使われます。
増刷時の発行部数は本や売れ行きによって異なるため、本によって増刷回数が同じでも、それまでに発行された合計の部数は異なる場合がほとんどです。
そこで、ある合計部数に対して増刷回数と発行部数が与えられたとき、各発行タイミング(初版および増刷)における発行部数のパターンが何通りあるかを考えます。
ここでは、各発行タイミングにおける発行部数は1000部単位とし、前回の発行部数と同じか、それより少ない部数を発行することにします。
例えば、1度増刷された場合は初刷と増刷の計2回発行されることになります。このとき発行部数が1万部となるパターンは、以下の5通りがあります。
(1) | (2) | (3) | (4) | (5) | |
初版 | 5,000 | 6,000 | 7,000 | 8,000 | 9,000 |
増刷1 | 5,000 | 4,000 | 3,000 | 2,000 | 1,000 |
同様に、2度増刷された場合は初刷と増刷を合わせて計3回発行されます。発行部数が1万部となるのは、以下の8通りがあります。
(1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | |
初版 | 8,000 | 7,000 | 6,000 | 5,000 | 6,000 | 5,000 | 4,000 | 4,000 |
増刷1 | 1,000 | 2,000 | 3,000 | 4,000 | 2,000 | 3,000 | 4,000 | 3,000 |
増刷2 | 1,000 | 1,000 | 1,000 | 1,000 | 2,000 | 2,000 | 2,000 | 3,000 |
ここからクイズ!
それでは、10回増刷されたとき(初版と合わせて合計11回発行されたとき)、発行部数の合計が10万部になるような、各発行タイミングにおける発行部数のパターンは何通りあるでしょうか。
※各発行タイミングにおける発行部数は1000部単位で、前回の発行部数と同じか、それより少ない部数を発行することにします。
解答は下記の応募フォームから、2月18日(日)までにお送りください。使用する言語は問いません。
応募の詳細
プレゼント内容
増井さんのサイン入り『もっとプログラマ脳を鍛える数学パズル』を、正解者の中から抽選で3名にプレゼント。
解答の注意事項
使用する言語、コードの内容は問いません。
解答期限
2月18日(日)まで。期限を過ぎた応募は無効です。
正解の発表
2月20日(火)にCodeZineで公開する記事にて正解を発表します。当落者の発表は行いません。
当選者への連絡
正解者のうち、抽選で3名に当選のご連絡をします。その際、プレゼント送付のためお名前と住所をお尋ねします。
応募フォーム
※お送りいただいた解答および個人情報は翔泳社の個人情報保護ポリシーに従い、当選者の抽選とプレゼント送付のみに利用します。
購入特典キャンペーンも実施中
また、本書を予約・購入していただいた方のために、特典として特別解説「アルゴリズムで1000倍速くなる?」をプレゼントします。アルゴリズムを理解するための初歩的な知識となる「データ構造」と「ソート」についての解説です。
アルゴリズムの基礎を学べば、数学パズルをすらすら解けるようになるでしょう。実務にも役立つ内容ですが、まずはパズルに挑戦してみてください!