Очень запутанный вопрос, надеюсь получиться объяснить.
Мне нужно не конкретное решение а алгоритм, теорию, псевдокод, ну короче понятно.
В общем, есть вероятности, массив, их сумма всегда 100 (то есть 100%), и вот как сгенерировать рандомное число по этим вероятностям?
Я сделал как то так:
- Генерируется рандомное число от 0 до суммы этих вероятностей, то есть 100.
- В цикле (0; < arr.length; ++) от sum по очереди отнимается каждая вероятность, и если рандомное число меньше sum то результат будет results[i]
Короче да, ничего непонятно. Но я блин прошу, помогите кто ни будь с этой штукой, может еще кому то будет полезно
Вот код (ну часть) если как то сделает яснее:
let prob_sum = 0
let bonus = 'non'
for (let i = 0; i < probs.length; ++i)
prob_sum += probs[i]
let prob = random(0, prob_sum)
for (let i = 0; i < probs.length; ++i) {
prob_sum -= probs[i]
if (prob < prob_sum)
bonus = results[i]
}
Пасиб всем кто поможет, пожалуйста не проходите мимо, да, помучайтесь (для кого как) вместе со мной =)