Случайное число с вероятностью

Я пытаюсь сгенерировать случайное число и с вероятностью x% приблизиться к максимальному значению.

Проблема в том, что я понятия не имею, как это сделать, если я не сделаю некоторые шаги?

Допустим, я сгенерирую случайное число от 1 до 3000.

$number = mt_rand(1, 3000)

Это вернет 2700, например. Я хотел бы, чтобы это было ближе к 1, чем 3000.

Как мне реализовать функцию, у которой будет только 10% шанс приблизиться к 3000?

1

Решение

На основании комментариев к вопросу вы можете использовать mt_rand функционировать дважды. Во-первых — проверить, должно ли это быть 90% (где значение является случайным от 1 до 100), а если нет — это остальные 10%, где значение является случайным из 1-3000:

$number = mt_rand(0, 9) == 0 ? mt_rand(1, 3000) : mt_rand(1, 100);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]