【发布时间】:2023-03-06 04:28:02
【问题描述】:
我正在尝试编写一个函数,它采用正实数并不断添加调和级数的项,直到总和超过初始参数。 我需要我的函数来显示已添加的系列术语的总数。
到目前为止,这是我的代码:
harmonic<-function(n){
x<-c(0,1)
while (length(x) < n) {
position <- length(x)
new <- 1/(x[position] + x[position-1])
x <- c(x,new)
}
return(x)
}
我为我的代码中的错误道歉,不幸的是我只使用 R 一个月,这是我第一次使用 while 循环,我找不到任何有用的信息。
谢谢你,非常感谢你的帮助。
【问题讨论】:
-
你好。目前还不清楚问题是什么。你能澄清一下吗?也许提供一个预期输出的例子?
-
(1)
n真的代表总和还是更确切地说是术语的数量? (2) 你想使用谐波级数,即1 + 1/2 + 1/3 + 1/4 ...?你的代码看起来很不一样。 -
例如,如果我输入谐波(5),预期输出应该是 1 1/2 1/3 1/4 ecc..(数字不一定是分数)这是谐波系列中的数字,直到它们的总和达到 5。我想放一张谐波系列的图像以使其更清晰,但由于这是我的第一个问题,我无法做到。 @flodel
-
@SvenHohenstein n 应该代表总和。我知道我的代码完全错误。这是迄今为止我能做的最好的事情,因为我在互联网上找不到类似的 while 循环用法。
-
@Bardee - 对于这个问题,
n有上限吗?我可以想到一个幼稚的解决方案,但它不适用于大值。例如。 -cumsum(1/1:10)将为您提供系列中前 10 个值的总和。
标签: r while-loop sum