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
Post a Comment