クーポンコレクター問題単語

クーポンコレクターモンダイ
5.2千文字の記事
  • 15
  • 0pt
掲示板へ

クーポンコレクター問題とは、ランダムに出るn種類の商品を複数個買うとき、いったい何個くらい買えば全種類入手できるかをめる確率論の問題である。

概要

ガチャガチャお菓子つきのおもちゃアイドルCDの生写真など確率ランダムに封入されているものについて、どのくらい買えば全種類手に入れられるかをあらかじめ見当付けたい時に役に立つ。

ところで問題の名前の通りクーポン券をえたいという状況はいまいち思い浮かばないが、これはおそらく「(商品に封入されているなどする)クーポン券を全種類集めることで商品と交換できる」というようなもの(要はオフラインコンプガチャ)だったのだろうか。

Wikipedia:クーポンコレクター問題exit
 いつの時代にも漕な商売はあるものである。

結論

確率ランダムに出るn種類の商品について、全種類が出うまでの購入回数 N の期待値(均)E(N) は次で与えられる。

E(N) = n×(1/1 + 1/2 + ... + 1/(n-1) + 1/n)

第n調和数 Hn=1/1+1/2+...+1/(n-1)+1/n を用いれば、この式は E(N)=n×Hn とも表せる。

具体例

例1. 6面サイコロの目が全部出揃うまでに振り続ける平均回数

具体例として6面サイコロの各(1~6)が全部出うまで振り続ける場合について考える。上の式にn=6を代入すれば

均回数 = 6×(1/1+1/2+1/3+1/4+1/5+1/6) = 14.7回

となる。ちなみに6回ちょうどで6種類全部を出せないと罰を食らうのが、キングボンビーの悪行「パネルアタック」である。回避が難しいのがわかるだろう。

例2. CDの購入特典44種類を全て入手するまでの平均購入数

あるアイドルCDを購入すると44種類のポスターランダムで1枚プレゼントされ、このポスターを全種類集めるとイベントに招待されるとする。このとき、全種類集めるまでのCD均購入枚数は

均購入枚数 = 44×(1/1+1/2+1/3+ ... +1/43+1/44) = 44×4.372... ≒ 192.4枚

CD1枚あたり1250円とすれば、イベントに招待されるためには24万円近い支出を覚悟しておく必要がある。

例3. 誕生日街頭調査

行く人に誕生日を尋ねるとしよう。日を無視し、365日全ての誕生日が出うまで終われないとすると、聞く人数の期待値は

均人数 = 365×(1/1+1/2+1/3+ ... +1/364+1/365) = 365×6.478... ≒ 2364

芸人やらせちゃだめよ。

E(N)(購入回数の期待値)の早見表

n E(N) n E(N) n E(N) n E(N) n E(N) n E(N)
1 1 11 33.2 21 76.6 31 124.8 41 176.4 100 518.7
2 3 12 37.2 22 81.2 32 129.9 42 181.7 200 1175.6
3 5.5 13 41.3 23 85.9 33 134.9 43 187.1 300 1884.8
4 8.3 14 45.5 24 90.6 34 140.0 44 192.4 400 2628.0
5 11.4 15 49.8 25 95.4 35 145.1 45 197.8 500 3396.4
6 14.7 16 54.1 26 100.2 36 150.3 46 203.2 1000 7485.5
7 18.2 17 58.5 27 105.1 37 155.5 47 208.6 2000 16356.7
8 21.7 18 62.9 28 110.0 38 160.7 48 214.0 5000 45472.5
9 25.5 19 67.4 29 114.9 39 165.9 49 219.5 10000 97876.1
10 29.3 20 72.0 30 119.9 40 171.1 50 225.0 100000 1209014.6

nが大きくなるほどE(N)を手で計算するのは手間になるが、「調和級数」でググれば計算してくれるようなサイトがある。あるいはwolfram alphaで「44*HarmonicNumber[44]」と入力exitすれば速やかに計算結果を表示してくれる。また、プログラミングExcelを多少使えれば、E(N)を計算させるのはそう難しくはないと思われる。さらに、後述のように対数オイラー定数を用いた近似計算も有効である。

考察

「全種類入手するまでの平均回数」まで購入した場合に、全種類入手できる確率は?

ここで気をつけたいのは、ここまで述べた回数はいずれも「多数の人に、全種類集めるまで挑戦するという試行をさせたときの、均の回数」である。

例えば上記のサイコロの例であれば、「100全員が1~6のを出し終えたあとで、それまでの回数を均するとだいたい15回になる」という意味であって、「同じことを100人の人がやったとして、15回には50人くらいが1~6の全てを出し終えている」という意味ではない。

では逆に、「100人の人が15回サイコロを振った場合、全種類のを出した人はどれくらいいるか」ということを考えると、だいたい64~65人が全種類のを出していると計算できるのである。

ちなみにnが十分に大きければ、この均回数以内に全種類っている確率は1-1/e≒63.2%となる(ネイピア数定義による)。

50%よりやや大きい(半数の人が全種類えるための回数より均回数のほうが多くなる)のは、運のいい人がえても均をあまり下げず、運の悪い人がなかなか最後の数個が出てこず均を上げる分が勝つからである。

「全種類入手するまでの平均回数」の「半分」まで購入した場合に、何種類入手できているか?

問題設定からわかる通りであり、また次の「導出」では具体的に計算するが、入手済みの種類数が増えるにつれて、次の一つを新たに入手するのが難しくなっていく

コンプガチャが問題になった理由の一つとして、「最初は少額だけ支出するつもりが多額になっていた」事態が起きやすいこともあるのだが、これは「最初のうちに集まりやすいと錯覚する」ということが理由といえる。

後述の「幾何分布の回数の期待値」を用いて、「全種類入手するまでの均購入数」の半分で何種類集められているか(端数切捨て)を計算すると以下の通りとなる。上記のポスター44種類の例だと、うち39種類集めてもまだ折り返し地点なのである。里を行くものは九十里を半ばとせよ。

  • 全6種類(14.7回):4種類集めるまでの均購入数は5.7回
  • 全10種類(29.3回):8種類集めるまでの均購入数は14.3回
  • 全20種類(72.0回):17種類集めるまでの均購入数は35.3回
  • 全44種類(192.4回):39種類集めるまでの均購入数は91.9回
  • 100種類(518.7回):92種類集めるまでの均購入数は247.0回

導出

この節では前節の冒頭の式 E(N) = n×(1/1+1/2+...+1/(n-1)+1/n) を導出する。明はやや込み入るので、興味のある方以外は読み飛ばしてもらっても構わない。

二段階に分けて説明する。

まだ持っていないものを一つ得るまでに、何回必要か?

部分的に考える。今すでにi種類集められた状態にあるとしよう(0 ≤ i ≤ n-1)。この状態になってから新たに(i+1)種類を得るまでの間の回数は、期待値として何回だろうか?

この状態にある間は、1回引くごとの「まだ持っていないものが出る確率」は pi = (n - i)/n と表せて、

  • まだ持っていないものが、1回で出る確率:pi
  • まだ持っていないものが、2回で出る確率:(1 - pi)×pi
  • まだ持っていないものが、3回で出る確率:(1 - pi)2×pi
  • まだ持っていないものが、4回で出る確率:(1 - pi)3×pi

のように回数と対応する(注:「3回で出る」なら、最初の2回はすでに持っているものが出たわけだから、その回数ぶん(1 - pi)をかける)。なお、この分布は幾何分布とよばれるので、グラフや詳しい挙動を知りたい方はこの名前で調べていただきたい。

幾何分布の回数の期待値は 1/pi であることが知られている。
これは(無限級数であることを除けば)高校数学Bで扱うテクニックで解けるので示しておく。回数の期待値をAとおくと、

A = 1×pi + 2×(1-pi)×pi + 3×(1-pi)2×pi + 4×(1-pi)3×pi + …
    = pi×[1 + 2×(1-pi) + 3×(1-pi)2 + 4×(1-pi)3 + …] ・・・(1)

(1)に(1-pi)をかけると、

(1-pi)A = pi×[1×(1-pi) + 2×(1-pi)2 + 3×(1-pi)3 + …] ・・・(2)

(1)-(2)を計算すると、

piA = pi×[1 + (1-pi) + (1-pi)2 + (1-pi)3 + …]

A = 1 + (1-pi) + (1-pi)2 + (1-pi)3 + …

右辺は無限級数なので、A = 1/pi と計算できる。直感的に言えば、確率x (0 < x ≤ 1)の事柄が起こるまでの繰り返し回数の期待値は1/xということで、これはxが単位分数でなくても成り立つというわけだ。

全部集めるまでに、何回必要か?

上記で得た 1/pi は「i種類集めた状態」から次の一つが得られるまでの回数の期待値なので、全部集めるまでの回数の期待値E(N) は、これをi=0~n-1について足せばよいだけである(念の為、ここが単純な足し算でいける理由を確かめたい方は、期待値の線について調べてほしい)。よって

E(N) = 1/p0 + 1/p1 + 1/p2 + … + 1/pn-1
    = n/n + n/(n-1) + n/(n-2) + … + n/1
    = n・(1/n+1/(n-1)+...+1/2+1/1)
  = n・(1/1+1/2+...+1/(n-1)+1/n)

となる。以上から結論の式を得る。 Q.E.D.

補足:調和数とオイラー定数

専門的なことはともかく、nが十分大きければ電卓対数があれば以下の式で簡単に調和数の近似値が得られる。

Hnlogen + γ

ここでγオイラー定数と呼ばれるもので、γ=0.57721566...である。自然対数loge(または ln)はPC電卓にも大抵あるので、総和がめんどくさいならこちらの近似値(のn倍=イ)が便利である。実は約0.5の誤差が出るので後で足すのだが、足せば驚くほど正確である。

n種類のものを集めるまでの均回数(ア)とその他の数値の表

種類
n

期待値
E(N)

アの近似値
n(logen + γ)

アとイの差
(→0.5)

調和数
Hn

自然対数
logen

エとオの差
(→γ)
6 14.70 14.21 0.486149 2.45 1.79 0.658241
10 29.29 28.80 0.491675 2.93 2.30 0.626383
20 71.95 71.95 0.495834 3.60 3.00 0.602007
50 224.96 224.46 0.498333 4.50 3.91 0.587182
100 518.74 518.24 0.499167 5.19 4.61 0.582207
200 1175.61 1175.21 0.499583 5.88 5.30 0.579714
500 3396.41 3395.91 0.499833 6.79 6.21 0.578215
1000 7485.47 7484.97 0.499917 7.49 6.91 0.577716
2000 16356.74 16356.24 0.499958 8.18 7.60 0.577466
5000 45472.54 45472.04 0.499983 9.09 8.52 0.577316
10000 97876.06 97875.56 0.499992 9.79 9.21 0.577266

(計算プログラムhttps://wandbox.org/permlink/HhNdnthIfcI8ylrwexit

終わりに

めて均回数をめる式をここにおく。先述の0.5を足すことで近似式(=イ+0.5)の誤差は0.01ほどもない。

E(N) = n×(1/1 + 1/2 + ... + 1/(n-1) + 1/n)

または,  E(N) ≒ n(logen + 0.5772...) + 0.5

この E(N) に1回の値段を掛け算すればコンプリートまでにかかる額の安となる。この手のものに出会ったらまず一度止まって考えてみることをすすめる。むやみに不利な勝負に出ることはない。

もちろんよく考えた上で勝負に出てもいいだろう。運営への好意のお布施ならそれもまたよし。しかしガチャガチャ財布お金ならばどれくらい費やしたかが実感として分かるものの、電子マネーで気づかぬ間に使いすぎたりしないよう、くれぐれも気を付けていただきたい。に使う額を決め計簿をつけるなどの対策で、支出を抑えよう。

関連項目

【スポンサーリンク】

  • 15
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

天外魔境II (単) 記事と一緒に動画もおすすめ!
提供: 🐉
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

クーポンコレクター問題

14 ななしのよっしん
2019/04/30(火) 01:52:06 ID: YJL+MSDqRn
>>13 上の表によるとE(1000) ≒ 7485回だから、期待値よりく達成できたことになりますね
👍
高評価
0
👎
低評価
0
15 ななしのよっしん
2019/05/12(日) 00:10:52 ID: al2DzGLuqK
編集しました
調和数とその近似との誤差はおよそ 1/(2n) らしく、これ自体は0に収束するが、両者にnを掛けたものの差は1/2に収束してしまう
そこで、nを掛けたあとに0.5を追加すればの期待値に収束するようになります

なお>>12スレのイッチは自分ではありません
👍
高評価
1
👎
低評価
0
16 ななしのよっしん
2019/05/12(日) 00:13:56 ID: al2DzGLuqK
>>1
偏ると期待値が上がるのは一般にらしい
👍
高評価
0
👎
低評価
0
17 ななしのよっしん
2019/05/12(日) 09:53:07 ID: YJL+MSDqRn
>>15 ありがとうございます。0.5を足すのは初めて知った 近似式を最初から H_n≒log_e(n) + γ +0.5 にしてしまってもいいですかね?
👍
高評価
0
👎
低評価
0
18 ななしのよっしん
2019/05/24(金) 20:18:34 ID: al2DzGLuqK
>>17
H_n≒log_e(n) + γ + 1/(2n) ではあるけど
H_n≒log_e(n) + γ + 0.5 にはならんのです
で、1/(2n) を計算してから n を掛けると二度手間だと思ったので、今のようにしれっと紛れ込ませて済まそうと思いました。
👍
高評価
0
👎
低評価
0
19 ななしのよっしん
2022/03/10(木) 04:51:36 ID: nMQ84Jdfpw
事中
>>「全種類入手するまでの均回数」まで購入した場合に、全種類入手できる確率は?
>>ちなみにnが十分に大きければ、この均回数以内に全種類っている確率は1-1/e≒63.2%となる
とあるけど、実際は57%くらいになるな。
動きを見ると単調減少のような感じで、n=100のときにはすでに57.5%くらいだ。
👍
高評価
0
👎
低評価
0
20 ななしのよっしん
2022/03/10(木) 08:01:25 ID: YJL+MSDqRn
>>19 シミュレートしたのかな?
👍
高評価
0
👎
低評価
0
21 ななしのよっしん
2022/03/10(木) 12:44:17 ID: nMQ84Jdfpw
>>20
シミュレートと、確率漸化式での数値計算の両方です。
n種類あるとして、残りa種類をb回以内にえる確率をP(a,b)とすると
P(0,b)=1,
a>1のときP(a,0)=0,
それ以外のときP(a,b)=(a/n)P(a-1,b-1)+(1-a/n)P(a,b-1),
となるので、これをもとにP(n,n種類のときの期待値)を計算すると、nが大きい時に57%くらいになります。
n=100のときの期待値は記事にある通り518.7で、
P(100,518)=約0.5725
P(100,519)=約0.5757
になりますね。
👍
高評価
1
👎
低評価
0
22 ななしのよっしん
2022/03/10(木) 12:47:36 ID: OrGt6IKvTG
全部セット買えばうんだしこの問題意味なくね?
👍
高評価
0
👎
低評価
2
23 ななしのよっしん
2022/03/10(木) 12:53:28 ID: PozJUKlhG4
コンプガチャ出すところがそんな良心的なもの売るわけねーじゃん?
👍
高評価
0
👎
低評価
0