Я разрабатываю Node.js приложение, где победитель должен быть выбран случайным образом на его основе Вероятность выигрыша в диапазоне [0, 100]%Weighted Random номер выбора
Мой код выглядит следующим образом:
var activeGame = {
id: 12324,
type: 1,
active: true,
players: [{
id: 5032,
name: "Username",
foo: true,
winProbability: 56.32 //%
}, {
id: 98243,
name: "Username",
foo: true,
winProbability: 22.68 //%
}, {
id: 10943,
name: "Username",
foo: false,
winProbability: 21.00 //%
}],
};
Я нашел другие алгоритмы, которые были не очень ясными и не работали с вероятностями, добавляющими до 100%.
Я ищу способ создать function selectRandomWinner()
для возвращения индекса выигравшего игрока, но я застрял, и все, и любая помощь будет принята с благодарностью. Благодаря!
генерации одного случайное число 0..100. Сравните его с номером первого игрока. Меньше? Он побеждает. Если больше, сравните с SUM номера первого и второго игроков. Еще больше? Затем добавьте номер третьего игрока ... и т. Д. Короче говоря, просто сравните свой выбор с суммарной суммой чисел от игроков, когда вы спускаетесь. Последний игрок вызовет сумму в 100, поэтому он победит, когда все остальные потерпят неудачу (и правильная сумма). –