星ドラの福引き、予算立ててますか? 突撃の前に読んでね!

星ドラの福引きの前に、見通し立ててますか? 500回引いて、1個しか当たらなかった、これってアリ?? (答え: 大いにあり得ます。確率約3割)

確率の話ですけど、カンタンなので、読んでね! 計算もせずに「運営は確率を操作してる」なんてブー垂れるのは負け組!! やみくもに突撃しちゃダメですよ!

無課金でも、予算 (「ジェムいくつまでなら払える」) を立てておきましょう。重課金なら(検閲により削除)

たぶん、いわゆる「ソシャゲのガチャ」全般に当てはまると思います。筆者は星ドラ以外は知らないんですが。

目次

これだけは覚えて! 期待値3個分のジェムは覚悟

とりあえず「期待値3個分引けば、1個は当たる」って思っておきましょう。一回引いて当たる確率が2.5%なら、120回引けば / 0.5%なら、600回引けば、1個は当たる確率が高いです。

それでも、当たらない確率が5% = 20分の1くらいあるんですけどね。クラスで1、2人は、こうなっちゃう、ということ。

表にまとめときますね:

表1: 期待値と、1個以上当たる確率の関係
何回引くか 期待値 1個以上当たる確率 (%)
1回当たり確率0.5% 1回当たり確率2.5%
200 40 1 63
400 80 2 86
600 120 3 95
800 160 4 98
1000 200 5 99.3

期待値1に達するまで引けば、2/3の人は、1個以上当たります。でも当たらないのも普通ですね。なんせ、確率が1/3もありますから。

ピッタリ○個当たる確率の表も、書いときます:

表2: 期待値と、当たる個数の確率の関係
期待値 丁度○個当たる確率 (%)
0個 1個 2個 3個 4個 5個
1 37 37 18 6 1.5 0.3
2 14 27 27 18 9 4
3 5 15 22 22 17 10
4 2 7 15 20 20 16
5 0.7 3 8 14 18 18

見て分かる通り、期待値  E の時は、 E 個当たる確率が一番高くて、そこから外れるに従って、確率が下がります。適当に四捨五入したので、100%超えてても怒らないでね。

式で書くと、期待値 Eg 個ゲットする確率は、 \frac{1}{e^E} \frac{E^g}{g \times (g-1) \times \ldots \times 1 } です。 e = 2.71828... は「Napier数」とか「自然対数の底」とか呼びますが、とにかく3よりちょっと小さい数です。これ、 E が整数なら、電卓で計算できますよ。 e^E って、eE 回掛けるだけですから。

その目安は、いつでも通用するの?

上で書いたのは目安ですけど、いつでも正しいのでしょうか? 答えは「1回で当たる確率が小さい時は」です。0.5%でも2.5%でも、1回だけ引いて当たるって事は、あんま無いですよね。(2.5%の時は、ちょっと誤差が気になるかも知れませんが、目安なので)

極端な反例の「100%当たる時」は、誰でも分かりますね。1回引けば必ず1個、5回引けば必ず5個当たる。確率の余地なしです。

小学生でも分かる範囲内で書いてますので、良かったら続きも読んで下さい。Poisson(ポアソン)分布とか中心極限定理とか、あるいはそんな面倒な事言わなくても (1+\frac{1}{n})^n = \exp(n \log (1 + \frac{1}{n} )) \stackrel{n \to \infty}{\to} eとか知ってればいいんですけど、そんな必要はありません。

期待値ってナニ?

確率の専門用語で「期待値」(expected value) とは、「平均」と思って下さい。確率1%で1回引いたら、当たりの期待値は0.01コ。120回引けば期待値1.2個。カンタンですね。(\text{1回当たりの確率})\times(\text{回数})です。

星ドラでよくあるのは、確率0.5%と、ピックアップの2.5%。前者は期待値1個になるのは200回、後者は40回引く必要がありますね。

全部ハズレの確率、1個だけ当たる確率

こっからは、確率の計算法を説明します。読まなくてもいいんですけどね。まず、一番簡単なの全部ハズレの確率と、1個だけ当たる確率。最初に、記号を決めておきます:

  • p は1回引いて当たる確率。パーセントなら、百で割ってね。5%なら、p = 5 \times 0.01 = 0.05
  •  q = 1 - p は、1回引いてハズレの確率
  • 全部で N 回引く

引いて全部ハズレの確率、これは簡単です。1回引いてハズレの確率は q、2回引いてハズレは q \times q = q^2。Ok? ということは、N 回なら  q^N

おっと、基本的なことを忘れてましたけど、「確率」ってのは「1 が最大」で計算します。「確率1」は「必ず起こる」の意味。「2回に1回」は、確率 1/2 = 0.5、「コイン2回投げて2回とも表」は  1/2 \times 1/2 = 0.25 って、そりゃそうですよね?

えっと、後で書く通り、最初に書いた「目安」の計算は電卓でもできるんですけど、細かい所 — たとえば普段の福引きで10連引いて外れる確率  (99.5 \times 0.01)^{10} — まで自分でも計算してみたい人は、どうすればいいんでしょうね。エクセル覚えるのが一番実用的ですけど、それ以外だとWolframalphaの日本語版、ja.wolframalpha.com行けば便利かな? 「○○乗」の記号は "^" です。"(99.5 * 0.01)^10" って入れれば、答えの 0.9511 \ldots が出てきます。つまり、1個も当たらない確率が約95%、反対に1個以上当たる確率は5%です。

次に、1個だけ当たる確率。これも、全然難しくありません。

  • いきなり1回目で当たって、後の N -1回は全部外れの確率、これは  p \times q^{N-1} ですね
  • 2回目だけが当たりの確率も、同じ。 p \times q^{N-1}
  • って事は、全部で1個当たる確率トータルは、「1回目で当たる確率 + 2回目で当たる + ... +  N 回目で当たる確率」です。同じのを  N 個掛けるだけですから、 N \times p \times q^{N-1}

大丈夫ですか? 読み返せば、ゼッタイ分かりますから、慌てずに。「面倒だから、自分じゃ計算しない」という方も、「確率の計算は面倒だけど、1行で式が書ける」と知っとくだけでも、お得かな、と思いますよ。

期待値と確率のキモ

記号を使うことにしたので、期待値 E は、E=pN と書けます。キモは、期待値が1だからと言って、必ず1個当たる訳ではない、ということ。当たり前ですね。さいころ6回振っても、1が必ず出る訳ではない。

もっと言えば、どんなに沢山の回数引いても、必ず当たる訳ではない。でも、100万回引いても、全部はずれ、という確率は極めて低いですよね。確率を計算しておけば、見通しが立ちます。「あらかじめ分かる事」が、確かにあるんです。その上で福引きに臨む。やみくもに突撃したり、根拠の無い文句を後から言ったりしない。計算できる人には、当然なんです。

コラム1: 取り返せません!


当たり前、なんですけど、

ギャンブル全般に言えますけど「取り返す」事はできません。既に払った分の期待値が5だけど、まだ1個も当たってない。で、さらに期待値3の分だけ引きましょう。すると最終的な期待値は8になるか? もちろんなりませんよね。改めて、期待値3の福引きに挑む、それだけです。

「払っちゃった(で、負けちゃった)分」は、忘れましょう。経済学の用語では「サンクコスト (sunk cost, 投下済みのコスト) は回収できない」とか言ってます。

コラム2: それじゃ期待値って、意味あるの?


じゃ、過去にハズれた / 当たった分が未来と関係ないなら、期待値って本当に意味があるのでしょうか? だって、負けちゃった人がまた負けて、勝った人がまた勝つこともある訳ですよね。

答えは、こうです: 意味はあります。確かに負け続ける確率も0ではないですけど、極めて小さい。期待値から、ひどく外れる事は、そうそうない。

たとえばコイントスを100万回する。(理想的なコインでは) オモテの期待値は50万回です。実際やると、表がたくさん出る人と、少ししか出ない人が出ます。でも、60万回出るってことは、まずありません。(10回試して6回オモテは普通の事ですよね。じゃ6割が普通かというと、100万回だと、そんな事ない、ということです。)

一般に確率モノを N 回ためすと、バラつきの幅は、 c \times \sqrt{N} にしかなりません。c は、「何か数」なんですけど、N には関係ない。期待値は N に比例しますね。N が大きくなればなるほど  \frac{\text{バラツキの幅}}{\text{期待値}} \sim \frac{\sqrt{N}}{N}  = 1 / \sqrt{N} は小さくなりますね。cが何だろうと。

注意1:  N が小さいときは、バラツキの幅  c\sqrt{N} は、 N より極端に小さい、って事はありません。現実に星ドラのプレイヤーにとっては、100万回引くことはできませんからね。

注意2:  N が大きくなるにつれて、バラツキの幅  c\sqrt{N} 自体も大きくなります! あくまでも、 N と比べると、小さい、というだけのこと。

一般の場合: g 個当たる確率

ここからは、ちょっと算数。丁度 g 個ゲットする確率を計算しましょう。ここまでの議論から分かる通り、それは  (\text{どこで当たるか}) \times p^g \times q^{N-g} です。「どこで当たるか」は、たとえば10回引いて2回当たる場合だと「1個目と2個目が当たり」「1個目と3個目が当たり」...みたいなのを数えればいい訳です。どうすればいいでしょうか?

それは、\binom{N}{g} = \frac{\overbrace{N\times (N-1) \times \ldots \times (N - g + 1) }^{g \, \text{個}}}{ g \times (g-1) \times \ldots \times 1} です。例: \binom{100}{4} = \frac{100 \times 99 \times 98 \times 97}{4 \times 3 \times 2 \times 1}

改めて言葉で書くと、\binom{n}{m} は、「n個の中から、m個を取り出すパターンが、いくつあるか」です。数学ではこれを「組合せ(の数)」とか、もっと専門用語っぽく「二項係数」とか呼んでます。(式としては、どう読むんでしょうね。英語では習慣的に "n choose m" と読みます。)

どうしてそうなるかは...他に当たって下さい。理屈はともかく、計算は簡単です。

じゃ、g 個以上当たる確率は? これは、簡単な式がありません。(私が知らないんじゃなくて、ホントにありません) 手で「g 個当たる確率」+「g+1 個当たる確率」+...を求めるか、あるいは「0個当たる確率」 + 「1個」 + ... 「(g-1)個当たる確率」を求めて、最後に1から引く、になります。計算が短くて済む方を選ぶのが現実的。

例: 確率 0.5%で1000回引いて、2個しか当たらなかった!! これっておかしいだろ!? どうなんだ?

やってみましょう。 p = 0.005 ですね

  • 全部はずれの確率:  q^{1000} = 0.0067 = 0.7\,\%
  • ちょうど1個当たる確率:  1000 \,p \, q^{999} = 0.033 =3.3\,\%
  • ちょうど2個当たる確率:  \frac{1000\times 999}{2} p^2 q^{998} = 0.084 = 8.4\,\%

つまり、2個以下しか当たらない確率が、恐ろしいことに約 12.5% もあります。ちょうど8人に1人ですな

...

ソレデモすくえにニ貢ギマスカ? You は何しに星ドラへ?

最初の「目安」の証明

これはちょっと数学が入るので読まなくていいんですけど、最初の「目安」の、「1回当たりの確率には関係なく、期待値を使えば求まる」ことの証明を書きます。(統計学をかじった方は Poisson 分布そのものです。) 期待値 E=pN を思い出しましょう。つまり  N = E/pですね。 N 回引いて、まず、全部外れる確率は

 (1-p)^N = (1-p)^{E/p} = \exp(\frac{E}{p} \log(1-p)) = \exp(E ( -1 + \frac{p}{2} - \frac{p^2}{3} + \ldots ))

です。真ん中へんのゴチャゴチャしたのは無視しましょう。\exp(x) ってのは = e^x です。(上のように、長い式を右肩に小っさい字で乗せるのを避けたいときに、\exp(x) と書きます。)

さて、当たる確率 p が小さい場合を考えていました。なので、p^2 は更に小さい。1万分の1とか、そのくらい。p^3はもっともっと小さい。で、これらを全部無視すると、 (1-p)^N \sim e^{-E} = 1/ e^E です。( x^{-y} = 1/x^y です。) p は消えて、Napier数 e \sim 2.72 と期待値 E だけで、確率が近似できました。

 g \ge 1 個当たる確率も E だけで書けることの証明がまだです。これは上の式に、 \binom{N}{g} p^g q^{-g} を掛けて修正すれば求まります。

まず  q^{-g} = (1-p)^{-g} は、ほぼ 1 です。これは無視。( g がとっても大きい時は、修正が必要ですが、別の方法があります。) 二項係数を含む方は  p^g \times \,N \ldots (N - g + 1) \sim p^g N^g = E^g と近似します。なんでかと言うと、 p は小さかったので、 N = E/p は大きい。たとえば  N = 200,\, g = 4 なら、 196 \to 200 と置き換えちゃっても、2%しか変わりません。(最終結果の2%、つまり0.02倍です。200回引いて4個入手の確率は1.5%ですから、+0.03%くらい大きくなっただけです。) やっぱり  p は消えて、期待値だけで書けました。やった!

コラム3: 残る「確率操作」の可能性


確率の操作ねえ...星ドラしか知りませんが、気になるのは、「今回の福引きの確率」ではなく「提供割合」って書いてある事。

純化した例を考えます: 「表だったら当たり」なコイントスで、代金を追加で払えば、同じコインで何回もトスできる、というルール。実は主催者は、表しかないコインと裏しかないコインを同数混ぜておく。どっちのコインを引くかはランダム。すると、半分の参加者は表しか出ない。残りの半数は必ずハズレ。でも必ずハズレとも知らずに、どんどん代金払って、何回もトライする人がいるかも知れない。主催者側は「我々は、半数の当たりを出してます」って言い逃れる余地があります。確かに「提供割合」は50%、と言えなくもないです。こんな感じの「確率操作」の可能性は、あります。

私が言えることは、私が責任者なら、こんな事はしない、という事。辞めた人が暴露する可能性があって、バレた時のリスクが大き過ぎるので。

そんな事しなくてもプレイヤーは十分バカで楽しめるなら対価と勝手に思い込んで思ってうわなにおするやめろおまえわだれだ#△×$●%

コホン。プレイヤーが、自ら払う環境を整えるのが「デキる」ビジネスであります。

確率が単一じゃない場合

確率が一種類じゃない時は、どうすれば計算できるでしょうか? 星ドラだと、黄金竜・ルビス福引きの場合、11連で2枠のみ☆5確定で、そっちと残りの9枠とで、当たる確率が違います。

この場合も、期待値を取っちゃうのが、いい近似になります。つまり、2枠がx%、9枠がy%なら、 2x + 9y を目安に計算しましょう。(この場合だと厳密な計算は、コンピューターにやらせるのも、ちょっと面倒。)

とは言っても、黄金竜・ルビスは特別に良い福引きなので、あまり考えずにどんどん引くのが基本ですけど。

コラム4: 数学メモ


問: たとえば e^{0.5} ってあるの? それナニ?

答: あるよ。e^{0.5} って言ったら、「2乗したら e になる数」、つまり  \sqrt{e} 。正確に小数では書けないけど、1.64872...。じゃ e^{0.3} は? これは2ステップで考える。(1) まず e^{0.1} は、10乗したら e になる数。1.10517... (2)  e^{0.3} = (e^{0.1})^3 = 1.34985..


問: e って、無理数だよね?  \sqrt{5} みたいな

答: ...ムズカシいね。確かに無理数、つまり (整数)/(整数) の形には書けない。その点では  \sqrt{5} みたいに、と言える。

だけど、根本的に違う点がある。 \sqrt{2} は、方程式 x^2 = 5 の解だけど、 e は、そうならない。ちゃんと言うと「整数だけで書いた方程式の解には、決してならない」。方程式の解になる数を「代数的数」、ならない数を「超越数」と呼ぶ。有名なのは  \pi超越数


問: え、そんな数って、特殊でしょ?

答: むしろ、超越数の方が、代数的数よりも遙かに沢山ある。少なくとも x超越数なら、 x + n/m (n, m は整数) も超越数なことは、ちょっと考えれば分かる。

だけど、そんなんじゃなくて、濃度が根本的に違う、って言っても、難しいね。両方とも無限にたくさんあるけど、実は「代数的数」は、数直線の上ではスカスカで、「ほとんど」が超越数

それでも文句がある人は

一年とか統計を取って「こんなに外れる確率は0.1%しかないぞ! おかしいだろ!!」という人は甘い。星ドラのプレイヤーは2018年で10万人はいます。つまり下位0.1%は100人いるということ。(廃課金が何人いるかは知りません。) ある1日の結果では、もっとバラつきますし。

「不正なコインのトス」の方は、頑張ってデータを集めれば  \chi^2 検定で見つけらるかも知れませんけどね。

コラム5: 「課金」?


「課金」って語に疑問が無いヤツはちょっと...「課する」の意味を知らないんだろうが、まあそりゃ日本人の知的レベルなんかトランプ支持者並み(略)

定着しちゃってるから、いまさら手遅れだけど。賄奴、貢僕、献隷、納民、等マシな単語はいくらでもあった。

関連記事