Мне интересно, что было бы лучшим способом (например, в Java) генерировать случайные числа в определенном диапазоне, где каждый номер имеет определенную вероятность или нет?Случайное число с вероятностями
например.
Генерация случайных чисел внутри [1, 3] со следующими вероятностями:
P (1) = 0,2
P (2) = 0,3
Р (3) = 0,5
Сейчас я рассматриваю подход генерировать случайное число в пределах [0; 100] и выполните следующие действия:
Если она находится в пределах [0; 20] -> Я получил мое случайное число 1.
Если она находится в пределах [21, 50] -> Я получил случайное число 2.
Если она находится в пределах [51, 100] -> Я получил мое случайное число 3.
Что бы вы сказали, ?
Я думаю, что это умный способ сделать это так, но я не знаю, есть ли что-нибудь «лучше». Просто убедитесь, что вы переходите от 0 до 99, так как иначе вы получите 101 номер, а не точно, какой процент вы хотите. – Blub
Да, это кажется разумным, иначе вы могли бы использовать [EnumeratedIntegerDistribution] (https://commons.apache.org/proper/commons-math/javadocs/api-3.2/org/apache/commons/math3/distribution/EnumeratedIntegerDistribution.html), пример показан [здесь] (http://stackoverflow.com/a/16436249/2358786) – kiruwka
Предоставлено, я не смог найти соответствующую реализацию для вашей проблемы в [SSJ] (http: //www.iro.umontreal. ca/~ simardr/ssj-2/indexe.html), но вы должны дать ему более тщательный вид, чем я ... – Yaneeve