小于 100 万的斐波那契数的 R while 循环 [已关闭]

R while loop for fibonacci numbers smaller than 1 million [closed]

提问人:cypherlemon 提问时间:10/25/2023 最后编辑:cypherlemon 更新时间:10/25/2023 访问量:48

问:


这个问题是由一个错别字或一个无法再重现的问题引起的。虽然类似的问题可能在这里成为主题,但这个问题的解决方式不太可能帮助未来的读者。

上个月关闭。

就像标题所说的那样,我必须编写一小段代码,使用 while 循环将小于 100 万的斐波那契数保存在向量中。我编写的代码运行了很长时间,以至于我总是不得不停止计算过程。我已经有不同的代码可以解决这个问题,但我仍然不确定为什么这种特定方法不起作用?

我试过的:

fib <- c(0,1) #define starting numbers of fibonacci vector
n<-3 #starting index of calculated fibonacci numbers
while (max(fib)<10^6) { #highest fibonacci should be smaller than 1 million
  fib[n]<-fib[n-2]+fib[n-1] #definition of fibonacci sequence`
  n+1 
}

我所期望的:所有斐波那契数都小于 100 万的向量 实际发生了什么:运行时间非常长,所以没有真正的结果

r while-loop 斐波那契

评论

3赞 George Savva 10/25/2023
n+1应该是n <- n+1
1赞 Limey 10/25/2023
...因此,你有一个无限循环。更正后的代码在我的系统上的平均运行时间为 9 毫秒。
0赞 Andrew Gustar 10/25/2023
你可能会完全失去,只是在循环中做nfib <- c(fib, sum(tail(fib, 2)))
0赞 r2evans 10/25/2023
@Limey......9毫秒?拍摄,我的大部分迭代都在 200 微秒以内!i.stack.imgur.com/9RQWF.png :-)
1赞 Limey 10/25/2023
@r2evans 我的硬件是 13 岁<尴尬的脸>。我能说什么呢。。。

答: 暂无答案