出るまで回せば100%のガチャ
大林です。
ソーシャルゲームで定番のガチャについて少し語りたいと思います。
さて、こちらのガチャというものは何なのかというと、平たく言えばくじ引きです。
1回数百円でゲーム内のキャラクターやアイテムが1つ手に入るというシステムで、狙ったキャラクターを引き当てるために、数十万円以上かける方もいたりと、中々景気の良い話がちらほら聞こえたり、「当たるまで回せば100%当たる」といった迷言が飛び出したりするのですが、今回はこの「当たるまで回せば100%」について語りたいと思います。
まず、結論から言います。
「当たるまで回せば100%」というのは基本的に間違いです。
例を挙げると「100個玉が入っており、そのうちの1個だけ当たりの箱」があったとします。
この時、100個全て引く。
言うなれば、底引きが可能なのであれば、当たるまで引く事が可能です。
最初は100分の1でも、99回引けば、残る玉が1つになるので1分の1の確率で引けるというわけですね。
しかし、ここに「引いた玉は同じ玉が補充される」というルールが入ると話が変わってきます。
何故なら、何度引こうと100分の1という確率が変わらないからです。
こうなると、100回目に当たるのか、1万回目に当たるのか、はたまた1億回目に当たるのか、確定した事が言えなくなります。
試行回数にあわせた計算式もあり、どれだけ運が悪くても繰り返せば99.999999…%当たるという形に落ち着くので、実際には永遠に引けない確率自体がかなり稀ではあるのですが、しかし可能性としては存在しています。
と、ここまでなら良くある確率のお話。
ここからは少し技術者っぽく話を膨らませてみたいと思います。
さて、このガチャのプログラムを組む際に非常に重要となるものがあります。
それは「乱数」です。
この「乱数」、ある範囲の値から無秩序な値を取り出すというものなのですが、これを作成する方法として、様々なものがあります。
一見、無秩序な値であれば先ほどと同じく99.99999…%になりそうなものですが、この乱数という仕組みは基本的にSeed(種)値という値と呼び出し回数を持って生成されます。
このSeed値と使用回数が同じであれば、必ず同じ値になるため、回している途中にSeed値を変更されない限り、使用n回目の乱数に当たりがあるのであれば、当たるまで回せば「当たるまで回せば100%」の理論は実は正しい事になります。
なお、これは余談なのですが、ずさんな管理をしているゲームだとガチャの乱数と普通のゲーム内の乱数を一緒にしているものもあるので、この乱数の生成に何を使っているかを特定して使用回数を当たりを引けるように調整する人とか結構いたりします。
企業側もそんな事をされたら収益上がらないので、大抵は乱数用にサーバーとか立てたり、予測されないように定期的にseed値を変更したりと、色々対策されるのですが、インターネット絡まないゲームとかだと非常にあくよ……もとい、活用出来るので、もし出ないアイテムがあったりして困っている人は勉強してみるのもいいかもしれませんね。
では!