###概要
ビンゴイベントで運悪く発表番号が重複し、カッとなって生み出されたウンコード。
数学はよくわからないので、試行回数で実際の期待値に近づける。
ビンゴの仕様については下記の通り
- 6x6 の36マス
- 1~36の番号が振られている
- 発表番号は重複する(1が呼ばれた次の発表でもう一度1が呼ばれることもある)
###目的
筆者は24枚中17種取得、7枚重複という結果。
これは運がいいのか悪いのか、期待値から判断する。
###ソースコード
/**
* 期待値を計算する。
* @param $cardMaxNum ビンゴカードの番号最大数。今回の場合36
* @param $drowCount ビンゴを回した数
* @param $roopNum 試行回数。大きいほど正確な期待値に近づく。
* @return float 当選番号の種類数の期待値
*/
private function getBingoExpectValue($cardMaxNum, $drowCount, $roopNum) {
$kindList = [];
for ($i=0; $i<$roopNum; $i++) {
$openedNums = [];
for ($j=0; $j<$drowCount; $j++) {
$openedNums[] = rand(1, $cardMaxNum);
}
// 重複削除
$kindList[] = count(array_unique($openedNums));
}
return array_sum($kindList) / $roopNum;
}
下記で呼び出して出力
echo($this->getBingoExpectValue(36,24,30000));
###出力結果
17.709133333333
###結論
そんなに運悪くなかった。ドルフロは神ゲー