我正在尝试计算 R 中这个序列的总和。
在以下情况下,序列将有两个输入(1 和 11),
1 + (1 * 2/3 ) + (1 * 2/3 * 4/5) + ( 1 * 2/3 * 4/5 * 6/7) + ....................(1 *......10/11)
我认为,定义我自己的方法是去这里的方法。
最佳答案
您可以尝试在此处仅使用老式循环:
sum <- 0
num_terms <- 6
for (i in 1:num_terms) {
y <- 1
if (i > 1) {
for (j in 1:(i-1)) {
y <- y * (j*2 / (j*2 + 1))
}
}
sum <- sum + y
}
您可以设置
num_terms
到您想要的任何值,从 1
到更高的值。在这种情况下,我使用 6
条款,因为这是您问题中要求的条款数量。有人可能会出现并将上面的整个代码片段减少到一行,但在我看来,这里有一个显式循环是合理的。
这是一个演示的链接,该演示打印出每个术语中使用的值,以进行验证:
Demo
关于r - 计算序列总和的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46908474/