Экстраполированная скорость роста базы пользователей линейная + вирусная - PullRequest
2 голосов
/ 22 марта 2011

Предположим, у вас есть n пользователей и вы знаете, что n увеличивается на фиксированное количество пользователей c в день и скорость роста вируса k в день, где k выражается в процентах n .

Как вы можете определить, сколько дней потребуется, чтобы база пользователей выросла до размера x , где x > n ?

Это сложная процентная проблема, но я не знаю, как это сделать с добавлением постоянного фактора c .

1 Ответ

3 голосов
/ 22 марта 2011

Предполагая, что вы не возражаете против дробных пользователей ... Если k выражено в виде десятичной дроби (таким образом, скорость роста 5% составляет k = 1,05), то формулаэто:

дней = log k (((1- k ) x - c ) / ((1- k ) n - c ))

Например, предположим, что ваша начальная база пользователей 5;вы постоянно растете на 3 пользователя в день, а вирусные на 5% в день;и ваша цель 35 пользователей.Тогда

дней = log 1,05 (((- 0,05) * 35 - 3) / ((-0,05) * 5 - 3)) = 7,78 .

Запустив процесс в Excel, вы можете видеть, что на самом деле в день 7 вы получаете 31,5 пользователей, а в день 8 36 пользователей.

Происхождение:

Обозначениеколичество пользователей после d дней как n_d .Тогда:

n 1 = kn + c

n 2 = kn 1 + c = k ( kn + c ) + c = k 2 n + ( k + 1) c

n 3 = kn 2 + c = k ( k 2 n + ( k + 1) c ) + c = k 3 n + ( k 2 + k + 1) c

...

n d = k d n + SUM i = 0, d -1 ( k i c )

Теперь сумма представляет собой геометрическую серию.Сумма этого геометрического ряда легко выводится (или находится в Википедии!) И составляет c (1 - k d ) / (1 - )k ).

Итак:

n d = k d n + c (1 - k d ) / (1 - k )

= k d n + c / (1 - k ) - ck d / (1 - k )

= k d ( n - c / (1 - k )) + c / (1 - k )

То есть

k d = ( n d - c / (1 - k )) / ( n - c / (1 - k ))

= ((1 - k ) n d - c ) / ((1 - k ) n - c )

Итак

d = log k (((1 - k ) n d - c ) / ((1 - k ) n - c ))

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