Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получить элемент массива с вероятностью (https://javascript.ru/forum/dom-window/86177-poluchit-ehlement-massiva-s-veroyatnostyu.html)

rafaello 18.11.2024 12:47

Получить элемент массива с вероятностью
 
Здравствуйте!
Есть такой массив
var arr = ["apple;40", "pear;15", "orange;5", "pumpkin;30", "cabbage;10"];

И есть 20(условно, может быть больше или меньше) ящиков. Надо в каждый ящик положить по одному фрукту с заданным процентом вероятности, который в строке после разделителя ";".
Первое, что приходит на ум, это пройти циклом по все ящикам и на каждой итерации цикла получить случайное число от 1 до 100. И на основании полученного числа присвоить каждому ящику определенный фрукт. Название фрукта вытаскиваем методом str.split(";");
В общих чертах понятно, но как именно рассчитать процент вероятности на каждой итерации - вот здесь голову сломал. Пол дня просидел и ничего не получается.
Не подскажете!
Заранее огромное спасибо!

rafaello 18.11.2024 14:33

Цитата:

Сообщение от Rise (Сообщение 556455)
Создать массив на 100 элементов и заполнить его согласно вероятностям: 40 элементов apple, 15 pear и тд.

Это очень неудобно.
Потому что изначально массив - это список юзер агентов, это я для наглядности написал, что фрукты. Этот список получен из текстового файла, где каждая строка - элемент массива, причем количество фруктов/юзер агентов может быть разное (при условии, что сумма процентов вероятности всех фруктов всегда равна 100).
Смысл в том, что сделал текстовый список и вставил в программу. Это гораздо проще, чем каждый раз делать массив из 100 элементов.

rafaello 19.11.2024 07:59

хотя код не отрабатывает, есть какая то ошибка, но суть я понял.
Спасибо большое за помощь!

micscr 21.11.2024 10:46

Вот есть с примерами на пыхе. Особенно доставляет первый, где формула возведения в степень.
Встретишь где то и охереешь, пытаясь понять


Часовой пояс GMT +3, время: 15:44.