Алгоритм выпадения предметов

Допустим есть предмет с шансом выпадения 30%. Какие есть алгоритмы или способы, чтобы осуществить выпадение этого предмета приблизительно в 30% процентов? Больше интересует именно описание этого способа, а не сам готовый код. Как это осуществляется в реальных проектах и играх или же где можно об этом почитать?


Ответы (1 шт):

Автор решения: Alex Rudenko

Известно, что существующие генераторы (псевдо)случайных чисел типа Math.random() возвращают как правило значения в диапазоне [0.0; 1.0).
Соответственно для "генерации" шанса в 30% нужно выбрать в пределах этого диапазона отрезок шириной 0.3:

double r = Math.random();

if (r < 0.3) // [0.0, 0.3)
if (0.2 <= r && r < 0.5) // [0.2, 0.5)
if (r >= 0.7) // [0.7; 1.0)
→ Ссылка