user referral algorithm / equation for user totals at a specific time -


i trying formulate equation determine number of users @ given time based on input of new users every xx amount of time , referred users.

basically, expect manually adding 100 users system every week. assuming every new user refers 1 more user every following week. each of new users refer 1 user following week , on. simple equation can input week # , return number of total users @ end of week. have accomplished using for-loop have in 1 simple equation if possible.

here example data , expected results (totals) first few weeks.

week 1        week 2        week 3        week 4        week 5 100 added     100 referred  100 referred  100 referred  100 referred               100 added     100 referred  100 referred  100 referred                             100 added     100 referred  100 referred                                           100 added     100 referred                                                         100 added  100 total     300 total     600 total     1000 total    1500 total 

also, if share rate 1 new user every 2 users (50% share rate)?

week 1        week 2        week 3        week 4        week 5 100 added     50 referred   25 referred   12.5 referred 6.25 referred               100 added     50 referred   25 referred   12.5 referred                             100 added     50 referred   25 referred                                           100 added     50 referred                                                         100 added  100 total     250 total     425 total     612.5 total   806.25 total 

any appreciated.

[edit]

i have found equation work 1:1 share ratio based on noticing pattern in above table not sure how implement share rate equation, how 50 come play?

$rate = 1; $increase = 100; $week = 5;  $balance = ($increase*$week) + (50 * ($week-1) * $week); 

you didn't specify language wrote solution in ruby:

sum_of_exponential_decays = -> n { (0..n).map {|n| 100 * 0.5**n}.reduce(:+)} sum_of_n = -> n {(1..n).inject(0) { |acc,x| acc += sum_of_exponential_decays[x-1]}} sum_of_n[5] # => 806.25 

the code seems pretty clear , it's summing exponential decays says.

for additional explanation @ sum_of_exponential decays function, reduce(:+) sums elements in and:

exponential_decays = -> n { (0..n).map {|n| 100 * 0.5**n}} (1..5).map {|x| exponential_decays[x] } # => [[100.0, 50.0],  [100.0, 50.0, 25.0],  [100.0, 50.0, 25.0, 12.5],  [100.0, 50.0, 25.0, 12.5, 6.25],  [100.0, 50.0, 25.0, 12.5, 6.25, 3.125]] 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -