Какую формулу можно подобрать? Необходимо сгенерировать случайное число от 0 до 1 Но так, что бы чем больше число, тем больше вероятность его появления. Что бы 0.8 выпадало с вероятностью 80%, 0.1 с вероятностью 10% и т.д. Как это можно сделать? Очевидно, если просто сгенерировать случайное число от 0 до 1, то будь на выходе 0.02 или 0.92 - вероятность их появления одинакова. p.s. Пока придумал очень дубовый вариант: создать массив, загнать туда восемь восьмерок, десять десяток и так далее, перемешать и ткнуть случайным образом в один из элементов.
Вы можете воспользоваться методом обратной функции распределения для генерации случайных чисел с увеличивающейся вероятностью. Для этого можно воспользоватся следующей формулой:
Сгенерируйте случайное число r от 0 до 1.Вычислите число x по формуле x = sqrt(r), где sqrt - функция извлечения квадратного корня.
Таким образом, чем больше значение r (и, следовательно, x), тем больше вероятность, что будет сгенерировано число ближе к 1.
Вы можете воспользоваться методом обратной функции распределения для генерации случайных чисел с увеличивающейся вероятностью. Для этого можно воспользоватся следующей формулой:
Сгенерируйте случайное число r от 0 до 1.Вычислите число x по формуле x = sqrt(r), где sqrt - функция извлечения квадратного корня.Таким образом, чем больше значение r (и, следовательно, x), тем больше вероятность, что будет сгенерировано число ближе к 1.