Вычисление сумм, как в комментарии выше:
## start + S*n*(n-1)/2 = T
## (T-start)*2/S = n*(n-1)
## n*(n-1) - (T-start)*2/S = 0
Функция для решения этого квадратного уравнения:
ff <- function(start,stepsize,threshold) {
C <- (threshold-start)*2/stepsize
ceiling((-1 + sqrt(1+4*C))/2)
}
Это решение по сути не занимает много времени ...
> system.time(cc <- count(1, 0.004, 1e10))
user system elapsed
5.372 0.056 5.642
> system.time(cc2 <- ff(1, 0.004, 1e10))
user system elapsed
0 0 0
> cc2
[1] 2236068
> cc
[1] 2236068
Вопрос в том, обобщает ли это именно ту проблему, которую нужно решить.