Предположим, у нас есть лотерея, которая имеет следующие выплаты 1,2,5,6,9,10,16
, Организатор ожидает 4%
прибыль от лотереи. Я написал некоторый код PHP, который имитирует это, но я не очень хорош в вероятности, поэтому я получаю неправильные результаты.
for ($i = 0; $i < 10000; $i++) {
$mainrand = rand(1,100);
$pay = 0;
if($mainrand > 96 && $mainrand <=100){
$pay = 0;
}
if($mainrand > 90 && $mainrand <=96){
$pay = 16;
}
if($mainrand > 81 && $mainrand <=90){
$pay = 10;
}
if($mainrand > 72 && $mainrand <=81){
$pay = 9;
}
if($mainrand > 60 && $mainrand <=72){
$pay = 6;
}
if($mainrand > 48 && $mainrand <=60){
$pay = 5;
}
if($mainrand > 24 && $mainrand <=48){
$pay = 2;
}
if($mainrand > 0 && $mainrand <=24){
$pay = 1;
}
$money += $pay;
}
echo $money;
Я ожидаю $money
быть очень близко к 9600
Но это далеко.
Логика в этом коде заключалась в том, чтобы рассчитать вероятность получения, скажем, 16-кратной выплаты из 96 возможных результатов и так далее, уменьшив каждую вероятность из результатов.
Я увеличиваю случайное число до приблизительно. 450 и все встает на свои места, но я хочу понять логику.
Выплаты и размер прибыли могут быть изменены, так что было бы замечательно, если бы кто-то мог помочь мне понять логику (алгоритм), что это можно посчитать.
Вы можете рассчитать ожидаемую стоимость игры в лотерею, сложив вероятность выплаты, умноженную на ее значение для всех возможных выплат. Когда я делаю это, я получаю ожидаемое значение 4,71. Обратите внимание, что у вас есть 96% -ый шанс выиграть хотя бы 1 (а во многих случаях гораздо больше 1), поэтому вы точно не получите 4% -ную прибыль. Вам нужно сделать ожидаемое значение = .96, а не вероятность выигрыша = .96.
Других решений пока нет …