I want to compute the following sequence using R, without loops, i.e. for cycles.
1 (2/3) ((2/3)*(4/5)) ((2/3)*(4/5)*(6/7)) ... ((2/3)*(4/5)*...(20/21))
So far, I tried different approaches with a sequence as well as a while function, but could not came up with a suitable solution. Help would be highly appreciated.
CodePudding user response:
We may use cumprod
v1 <- seq(2, 20, by = 2)
v2 <- seq(3, 21, by = 2)
1 sum(cumprod(v1/v2))
[1] 4.945724
-manual calculation
1 (2/3) ((2/3)*(4/5)) ((2/3)*(4/5)*(6/7)) ((2/3)*(4/5)*(6/7) * (8/9)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11) * (12/13)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11) * (12/13) * (14/15)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11) * (12/13) * (14/15) * (16/17)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11) * (12/13) * (14/15) * (16/17) * (18/19)) ((2/3)*(4/5)*(6/7) * (8/9) * (10/11) * (12/13) * (14/15) * (16/17) * (18/19) * (20/21))
[1] 4.945724