提问人:poole13 提问时间:4/27/2022 最后编辑:poole13 更新时间:5/2/2022 访问量:129
具有停止值的序列
Sequence with stopping values
问:
这就像一个常规的特里波那契数列,但是,我希望每当该项处于最小值或最大值时,该序列就会停止。
这就是我开始的
sequence <- function(a1=0, a2=0, a3=1, min=0, max=30) {
an <- c()
a[1] <- a1
a[2] <- a2
a[3] <- a3
while(a <= max || a >= min) {
a[i] <- a[i-1] + a[i-2] + a[i-3]
an <- c(an, a[i])
}
an
}
关于我的代码设置以及如何修复索引,有什么建议吗?
答:
0赞
dcarlson
4/27/2022
#1
这是使用以下方法对此进行编码的方法:abs()
tribonacci <- function(start=c(0, 0, 1), maxval=15) {
a <- start
i <- 3
while(abs(a[i]) <= maxval) {
i <- i + 1
a[i] <- a[i-3] + a[i-2] + a[i-1]
}
a[1:(i-1)]
}
tribonacci(maxval=24)
# [1] 0 0 1 1 2 4 7 13 24
tribonacci(start=c(0, 1, -3), maxval=30)
# [1] 0 1 -3 -2 -4 -9 -15 -28
由于我们使用绝对值,因此我们只需要一个参数来指定最大值/最小值。
上一个:程序启动时出错
评论
a <=max
tribonacci(a1=0, a2=0, a3=1, min=0, max=24)
0 0 1 1 2 4 7 13 24
tribonacci(a1=0, a2=1, a3=-3, min=-30, max=1)
0 1 -3 -2 -4 -9 -15 -28