Вопрос может быть уже задавался не раз, но тем не менее я нигде не нашел ответа на него.
Требуется выбрать число из массива с вероятностью, пропорциональной его величине. Это значит приблизительно следующее:
Есть массив, к примеру:
int var[] = new int[8];
var = {1, 0, 0, 2, 5, 2, 4, 1};
Нужен алгоритм, который бы возвращал одно из этих чисел, но с пропорциональной этому числу вероятностью, т.е. шансы быть выбранным у элемента '5' самые большие, а у элементов '0' - самые маленькие, но все же они должны выпадать.
Этот алгоритм надо будет запускать в многоитерационном цикле, а результирующее число записывать в переменную, которая будет использована дальше в программе.
Прошу помощи, ибо сам исчерпал подходы к этой проблеме