Нужна функция присуждения приза с учетом ранга и суммы банка - PullRequest
1 голос
/ 20 апреля 2011

Мне нужна формула для назначения доли призового вознаграждения участникам конкурса.

Лучшие n победители должны получить долю от общей суммы приза x в зависимости от их рангового порядка.

Однако победители должны получить непропорционально сумму приза, например, учитывая n = 3 и x = 2500 лучший победитель получает что-то порядка 1500 долларов, следующие 750, последние 250 долларов.Очевидно, что n и x могут различаться.

Какую функцию с учетом n , x и rank данного участника может вернуть пропорцию x для этого ранг , сумма которого для всех возможных значений ранг (ограничена n ) будет равна x ?И что будет монотонным, но не линейным?

Ответы [ 2 ]

4 голосов
/ 20 апреля 2011

Этот вопрос потрясающий! :) Боюсь, что я не могу (не знаю, как) поместить здесь запись суммирования, поэтому позвольте мне использовать слова.

prizeMoney = (summation: i=r to n) of x/in

Так что, если n = 3

rank = 1 получает x/3 + x/6 + x/9

rank = 2 get x/6 + x/9

Ранг = 3 получает x/9

Итого: x/3 + 2x/6 + 3x/9 = 3x/3 = x

3 голосов
/ 21 апреля 2011

Есть ли способ контролировать степень наклона? - *ıu

Да. Использование:

(x (z - 1) z^(n - r))/(z^n - 1)

Где z - коэффициент масштабирования больше единицы, r - ранг, n - количество получателей, а x - общий призовой фонд.

Например, вот $ 10 000, разделенные на 12 человек, каждый из которых получает в 2 раза больше предыдущего:

enter image description here

{5001.22, 2500.61, 1250.31, 625.153, 312.576, 156.288, 78.1441, 39.072, 19.536, 9.76801, 4.884, 2.442}


Вы неявно спросили, как я это получил. Позвольте мне показать вам, используя WolframAlpha .

Сначала я опишу проблему для случая трех человек в терминах неравенства:

{a + b + c == x, x > a > b > c > 0, z > 1, a == b z, b == c z}

Затем я прошу WolframAlpha решить эту проблему. Reduce - это команда Mathematica, которую WolframAlpha принимает.

Это дает результат:

enter image description here

Я также судил дело четырех человек. Из этих результатов я пришел к выводу, что формула была:

(x*z^(n - r))/Sum[z^i, {i, 0, n - 1}]

И попросил WolframAlpha оценить его , что возвращает:

enter image description here

Теперь вы видели за занавесом. ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...