X
X
xonar2018-12-08 20:39:21
PHP
xonar, 2018-12-08 20:39:21

How to make a number generator according to probability theory?

Hello.
It's worth the task. There are 6 numbers - 1.2, 1.5, 1.7, 2, 2.2, 4. Their average value is 2.06.
Now I need to use probability theory to generate a number below or above the average. According to the theory of probability, 100/2.06 = 48.54% of the number falling out. We have 2 results either false or true. But, I need to show people what number fell out, that is, for example, the number 1.75 fell out and it did not reach 2.06, but it could also fall out 2.50. How to do this?
I'm making a script in PHP, but the math is tight.
Help.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
Dmitry Gamzin, 2018-12-08
@xonar

If I understood correctly - you need something like this? The task was set very vaguely.

<?php
$n = 6; //Количество сгенерированных чисел
$numbers = array(); //Массив данных с числами
$min = 1; //Минимальное число
$max = 3; //Максимальное число
$sum = 0; //Сумма чисел
$r = 2; //Число разрядов
$value; //Число которое выпадет пользователю
$srznch; //Среднее значение
$st = 1; //Ставка на БОЛЬШЕ или на МЕНЬШЕ, соответственно 1 - больше, 0 - меньше

// Генерируем 3 числа от 1 до 3
for ($i = 1; $i <= $n; $i++) { 
  $numbers[$i] = round($min + lcg_value()*(abs($max - $min)), $r);
  $sum = $sum + $numbers[$i];
}

//Генерируем число пользователя
$value = round($min + lcg_value()*(abs($max - $min)), $r);
$srznch = round($sum/$n, $r);

//Совпало ли число со средним
if ($value != $srznch)
{
  switch ($st) {
  case '1':
    $value > $srznch ? print_r("Вы победили<BR>") : print_r("Вы проиграли<BR>");
    break;

  case '0':
    $value < $srznch ? print_r("Вы победили<BR>") : print_r("Вы проиграли<BR>");
    break;
  }
}
else
{
  print_r("Вы угадали среднее число и выграли 10000000000000000000000000$<BR>");
}


print_r($numbers);
print_r('<BR>');
print_r($sum);
print_r('<BR>');
print_r($value);
print_r('<BR>');
print_r($srznch);
?>

K
Karpion, 2018-12-09
@Karpion

Странно Вы делите сто на среднее значение. А что если среднее значение будет меньше единицы?
У нас не два результата, а три: выпавшее число меньше среднего, больше среднего или равно среднему.
Должно ли выпасть число - одно из списка? Или оно м.б. любое? Если любое - то в каком интервале и с каким распределением?
Лучше всего напишите - зачем оно Вам нужно. А то вдруг окажется, что Вам нужно вообще не это, а немного совсем другое.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question