【发布时间】:2013-07-13 23:05:44
【问题描述】:
我是 R 的新手,所以在 C 和 Python 中似乎可以正常工作的东西,在 R 中却出人意料地崩溃了。 我正在尝试计算前 1000 个斐波那契数的乘积。完整代码如下:
#PRRODUCT OF FIBONACCI NUMBERS
Fibonacci<-rep(0, 1000)
Fibonacci[0]<-1
Fibonacci[1]<-1
Product<-1
for (i in 2:1000)
{
Fibonacci[i]<-(Fibonacci[i-1])+(Fibonacci[i-2])
Product<-Fibonacci[i]*Product
}
Fibonacci[1000]
Product
这会返回以下错误:
Error in Fibonacci[i] <- (Fibonacci[X - 1]) + (Fibonacci[X - 2]) :
replacement has length zero
我倾向于认为我误解了使用数组的不同元素进行操作(也许向量描述中的 i-2 不正确),但在过去一个半小时内我没有发现任何可能帮我改正了。 因此,我们将非常感谢您对问题原因的任何见解。
提前谢谢你。
【问题讨论】:
-
一个简单的调试技巧是在循环的开头插入
print(i)。这会告诉您错误发生在哪里,以便您找出问题所在。 -
我遇到了类似的问题,听了你的建议,它不起作用,因为我们收到了错误,所以没有 print() 发生。