我需要一个for循环,但无法正常工作。
我需要在for循环中计算一个带有两个变量的函数。该功能是
F(y, x) = 1 + y + y^2 + ... + y^x.
例如,如果
x = 4
F(y, x) = 1 + y + y^2 + y^3 + y^4
以此类推。
> sum <- 1
> for(i in 0:3){
+ for(y in 0:3){
+ sum <- sum + y ^ (i)
+ }
+ }
print( sum )
[1] 61
此结果不正确。应该是“ 40”
答案 0 :(得分:0)
结果是正确的:您使用代码计算的是以下总和:
1 + (default value of sum)
1 + 1 + 1 + 1 + (i = 0)
0 + 1 + 2 + 3 + (i = 1)
0 + 1 + 4 + 9 + (i = 2)
0 + 1 + 8 + 27 (i = 3)
总计61。
如果您想要一个可以计算的函数
y ^ 0 + y ^ 1 + ... + y ^ x, 对于整数x,只需尝试
sum(y^(0:x))
您不需要for循环。
如果您坚持使用for循环,则可以尝试
F <- function(x, y) {
.sum <- 0
for(i in 0:x) {
.sum <- .sum + y^i
}
result(.sum)
}