Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Actually, even be worse here. E.g. if all the numbers are positive you will get an overflow pretty quick, so you'll need a better datatype. So if you are dealing with b-bit numbers you'd need O(n * log(bn)) to calculate the average.

(Usually this doesn't matter, but since n >> b it does).

Edit: Notwithstanding my earlier comment that average doesn't work, merely commenting on the run time of average.



Or, you could compute the average as follows:

    m <-- m - (1/t) (m - x_t)
This will compute the exact historical average. I like to use 2/t instead of 1/t to get a moving average over a non-stationary distribution, which favors the more recent events.


Please keep numerical errors in mind. They accumulate.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: