Задать вопрос
@xonar
А смысл?

Как сделать генератор чисел по теории вероятности?

Здравствуйте.
Стоит задача. Есть 6 чисел - 1.2, 1.5, 1.7, 2, 2.2, 4. Среднее их значение 2.06.

Теперь мне нужно по теории вероятности сгенерировать число ниже или выше среднего значения. По теории вероятности 100/2.06 = 48.54% выпадения числа. У нас 2 результата или ложь или правда. Но, мне нужно показывать людям какое число выпало, то есть например выпало число 1.75 и оно не дотянуло до 2.06, а может выпасть и 2.50. Как сделать такое?

Делаю скрипт на PHP, но с математикой туго.

Помогите.
  • Вопрос задан
  • 240 просмотров
Подписаться 1 Простой 16 комментариев
Решения вопроса 1
@sashagamzes
Самоучка
Если я правильно понял - вам нужно что-то типа этого? Очень невнятно поставили задачу.

<?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);
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Странно Вы делите сто на среднее значение. А что если среднее значение будет меньше единицы?

У нас не два результата, а три: выпавшее число меньше среднего, больше среднего или равно среднему.

Должно ли выпасть число - одно из списка? Или оно м.б. любое? Если любое - то в каком интервале и с каким распределением?

Лучше всего напишите - зачем оно Вам нужно. А то вдруг окажется, что Вам нужно вообще не это, а немного совсем другое.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы