Случайный взвешенный выбор в Java

Я хочу выбрать случайный элемент из набора, но шанс выбора любого элемента должен быть пропорционален соответствующему весу

Примеры входных данных:

item                weight
----                ------
sword of misery         10
shield of happy          5
potion of dying          6
triple-edged sword       1

Итак, если у меня есть 4 возможных элемента, шанс получить любой предмет без утяжелителей будет 1 из 4.

В этом случае у пользователя должно быть в 10 раз больше шансов получить меч страданий, чем меч обоюдоострый.

Как сделать взвешенный случайный выбор в Java?

58
задан Peter Lawrey 16 April 2016 в 19:06
поделиться