Логарифмическое распределение - PullRequest
1 голос
/ 02 декабря 2010

Во-первых, математика - это не моя область.

Представьте себе проблему, подобную этой:

У меня есть несколько денег, чтобы потратить, скажем, 500, и мне нужно потратить их нафиксированное количество дней, скажем, 20. У меня есть фиксированный максимум денег, чтобы тратить в день, например, 50. Мне не нужно тратить деньги в день.

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

Curve

Моя цель - это функция, которая берет количество денег и количестводней, и возвращает кортеж с номером дня и суммой денег за этот день.

Я знаю, что мне нужно использовать логарифмы какого-то типа, и я перепробовал почти все, с чем мог справиться мой мозг.Я смотрел на wolfram mathworld и эту формулу:

y = a + b ln x

Но это не очень помогает мне.

Подсказка или пример в PHP, Python или C # были бы хорошими, но подойдет любой язык.

ПОЖАЛУЙСТА дайте мне знать, если вам нужна дополнительная информация или если вопрос неопределенный,Я действительно хочу решить это.Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Я не понимаю, почему вы хотите распространение журналов.Параболическая форма поможет вам получить желаемую форму кривой:

 spend[day] = a day^2 + c 

, где:

a -> (6 * (TD - TA)) / (TD *(-1 - 3 * TD + 4 * TD^2))  


c -> -((1 + 3 * TD - 6*TA*TD + 2 * TD^2)/ (-1 - 3 * TD + 4 * TD^2))  

TA = Total Amount
TD = Total Days

При этом сумма, которую вы потратили в последний день, составляет 1.

Для вашего примера значения: (amt 500, days 20)

alt text

0 голосов
/ 02 декабря 2010

Вы уверены, что то, что вы просите, не является линейным уравнением?Например, y = f (x) = - 50x + 500, а общее количество дней будет x, где y = 0.

...