Задать вопрос
@entermix

Как правильно распределить ресурсы?

Например у нас есть 5 пользователей, у каждого есть свой рейтинг:

1 - 0.5
2 - 3,1
3 - 0,7
4 - 2,3
5 - 2,1

Допустим каждые rand(1,10) минут появляется бонус, как правильно распределять эти бонусы в зависимости от рейтинга?

UPD: Возможно неправильно привел пример, нужно что то типа распределения количества показов баннерной рекламы пользователям, между ее рекламодателями.
  • Вопрос задан
  • 444 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
begemot_sun
@begemot_sun
Программист в душе.
1. Берете нормализуете выборку:

Sum = 8.7

1 - 0.5 / 8.7 = 0,057471264
2 - 3,1 / 8.7 = 0,356321839
3 - 0,7 / 8.7 = 0,08045977
4 - 2,3 / 8.7 = 0,264367816
5 - 2,1 / 8.7 = 0,24137931

2.Далее вычисляете интегральные значения:

1 - 0,057471264
2 - 0,057471264 + 0,356321839 = 0,413793103
3 - 0,413793103 + 0,08045977 = 0,494252873
4 - 0,494252873 + 0,264367816 = 0,758620689
5 - 0,758620689 + 0,24137931 = 1

3.Далее генерируете случайное число в диапазоне от 0 до и 1 и находите первого рекламодателя интегральное значение которого будет больше данного числа. Это и будет тот, чью рекламу нужно показать.

т.е. баннеры будут крутиться в соотвествии с "важностью" рекламодателей.
в среднем первый получит 5% показов, второй - 35%, третий -8% четвертый -26%, пятый - 24%. При условии того что у вас хороший генератор случайных чисел с равномерным распределением вероятности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
А как вы хотите распределять? Все лучшему? или от каждого по способностям - каждому по потребностям?
Если второе - можно сложить рейтинги вместе и вычислить x= bonus*0.1/summ(rating) - Получите примерную стоимость 0,1 пункта рейтинга. Затем умножаете эту стоимость на сам рейтинг и получить реальное вознаграждение участника. Только вот это не тервер и не вышмат, а математика средней школы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы