Моя задача:Генерация случайных чисел Php
Производите случайные числа от 1 до 20, до 1 десятичного знака.
Однако моя проблема так же проста, как mt_rand. Я хочу, чтобы большая часть чисел была ниже, чем 0.5 - 4.5, причем количество эпизодов между 4.5-10 и очень редко повторялось каждые 12-20 часов между 10-20.
Я использовал следующее, но понятия не имею, куда идти. Я очень простой программист-самоучка.
$min = 1;
$max = 20;
$suisse_interest = mt_rand ($min*10, $max*10)/10
Может быть, если я кратко объяснить, почему я хочу это может помочь ..
У меня есть онлайн-игры и хотите добавить 3 «банки» с каждым банком генерируя различные интересы каждого часа. Большую часть времени я хочу, чтобы он был низким, но иногда высоким и очень редко очень высоким (15-20%).
С приведенным выше кодом случайное число часто становится слишком высоким.
Любая помощь с этим очень ценится!
возможно дубликат [Defining процент для случайного числа] (http://stackoverflow.com/questions/20790139/defining-percentage-for-random-number) – Rizier123
Поскольку распределение вы хотите создать [монотонное уменьшение] (http://en.wikipedia.org/wiki/Monotonic_function), вы можете использовать алгоритм [ziggurat] (http://en.wikipedia.org/wiki/Ziggurat_algorithm) для отображения ваше распределение (равномерное) на тот, который вы хотите (который вы произвольно можете создать). Или вы можете использовать преобразование box muller, но оно менее эффективно (и, поскольку вы делаете это много, вам может потребоваться прекомпиляция таблиц, описанных в алгоритме зиггурата). – will