You see, if you start with the value 100 and gradually increase to 1000000 by a gradual addition, say 20 to 20, you will not "ever" to 1000000, because that is a lot of steps. What you need is a geometric progression, that is, a multiplicative effect. You consider that multiplying by 10 is very fast, and so I would like to be able to control the step.
So let’s set your initial and final limits.
qt.inicial <- 100
qt.final <- 1000000
And also the number of steps desired:
num.passos <- 20
Now think: I must multiply the initial number (qt.inicial
) a certain number of times (num.passos
) by a certain factor, in order to reach the final number (qt.final
).
That is, Qt.inicial * factor num.passos = Qt.final.
Therefore, to know the desired factor, it is enough to resort to radiciation: factor = (Qt.final / Qt.initial) (1 / num.steps)
fator <- (qt.final / qt.inicial) ^ (1 / num.passos)
So now we put the rest of our logic in a loop:
for(i in 0:num.passos) {
qt <- round(qt.inicial * fator ^ i, 0)
x <- rnorm(qt); x <- x[-1 <= x & x <= 1]
r <- length(x) / qt
print(paste0("Para a quantidade = ", qt, " o resultado é: ", r*100))
}
Running this code, I got the following output:
[1] "Para a quantidade = 100 o resultado é: 65"
[1] "Para a quantidade = 158 o resultado é: 64.5569620253165"
[1] "Para a quantidade = 251 o resultado é: 75.2988047808765"
[1] "Para a quantidade = 398 o resultado é: 66.0804020100502"
[1] "Para a quantidade = 631 o resultado é: 68.1458003169572"
[1] "Para a quantidade = 1000 o resultado é: 67.9"
[1] "Para a quantidade = 1585 o resultado é: 66.4984227129338"
[1] "Para a quantidade = 2512 o resultado é: 68.6305732484076"
[1] "Para a quantidade = 3981 o resultado é: 69.304194925898"
[1] "Para a quantidade = 6310 o resultado é: 68.4310618066561"
[1] "Para a quantidade = 10000 o resultado é: 67.7"
[1] "Para a quantidade = 15849 o resultado é: 68.3197678086946"
[1] "Para a quantidade = 25119 o resultado é: 68.3466698515068"
[1] "Para a quantidade = 39811 o resultado é: 68.4584662530456"
[1] "Para a quantidade = 63096 o resultado é: 68.4718524153671"
[1] "Para a quantidade = 1e+05 o resultado é: 68.415"
[1] "Para a quantidade = 158489 o resultado é: 68.2924366990769"
[1] "Para a quantidade = 251189 o resultado é: 68.2764770750312"
[1] "Para a quantidade = 398107 o resultado é: 68.1969922658984"
[1] "Para a quantidade = 630957 o resultado é: 68.3056056117929"
[1] "Para a quantidade = 1e+06 o resultado é: 68.219"
Adjusting the value of the variable num.passos
, you can get the gradation you prefer.
Thank you so much, really what I had trying to idealize! I thank you so much!
– Magliari