Как выбрать случайным образом победителя, учитывая его шанс на победу? Добрый день, уважаемые :)
Есть такая задача:
Люди делают ставки предметами (предметы оцениваются по цене, цена как правило дробное число = 0.55, 34.22 и т.д), через какое-то время должен выбраться победитель случайным образом, НО с учетом того шанса на победу (чем больше ставка - тем больше шанс победить).
Примеры таких сайтов - csgojackpot.com, csgoup.ru
Мы реализовали данный алгоритм вот так https://gist.github.com/Riateche/3038910
Но есть сомнения, т.к очень и очень часто выигрывают люди с небольшим шансом (можно конечно оправдать, что мол рандом)
Подскажите пожалуйста, правильный ли алгоритм мы используем (учитывая что число случайное - целое, а отрезки шансов в алгоритме - дробные)? И есть ли более подходящие системы случайного выбора победителя, основанные на шансе победы?

21 Авг 2019 в 06:12
150 +1
0
Ответы
1

Добрый день!
Ваш алгоритм на первый взгляд выглядит весьма разумно. Он учитывает шанс на победу каждого участника, пропорционально сумме его ставки. Однако, как и в любом случае случайного выбора, есть вероятность того, что участник с меньшей ставкой выиграет. Это связано с тем, что даже участник с очень маленькой ставкой имеет шанс на победу, хоть и меньший, чем у участника с большей ставкой.

Если вы хотите увеличить вероятность победы для участников с более крупными ставками, можно попробовать следующее:

Увеличить диапазон случайного числа, которое будет выбираться как победитель. Например, если сумма всех ставок равна 100, можно выбирать случайное число от 1 до 1000, чтобы увеличить шансы участников с более крупными ставками.Взвешивать шансы победы участников не только по сумме их ставок, но и по их активности на сайте (количество сделанных ставок, время пребывания на сайте и т.д.).

Помимо этого, можно исследовать другие алгоритмы случайного выбора победителя, такие как алгоритм Эйлера или Лапласа. Но в целом, ваш текущий алгоритм выглядит вполне адекватным для случайной выборки победителя с учётом шанса на победу.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир