While trying to run this code:

l = 1000000
w = [1, 1]
for i in range(2, l):
    w.append(w[-1] + w[-2])

电脑挂着,蓝色的死亡屏幕出现了。我得到的唯一信息是关于内存管理的。。
代码适用于l = 100000
?。
编辑:
这是一个很好的R代码:
len <- 1000000
fibvals <- numeric(len)
fibvals[1] <- 1
fibvals[2] <- 1
for (i in 3:len) {
   fibvals[i] <- fibvals[i-1]+fibvals[i-2]
}

最佳答案

。例如,下面是最后一个的内存大小:

>>> a, b = 1, 1
>>> for i in xrange(2, 1000000):
...     a, b = b, a+b
...
>>> sys.getsizeof(b)
92592

一个整数是92千字节。所有这些数据加在一起大概是46千兆字节,而你只有16千兆字节。
你的R代码使用了64位浮点数,它在1476左右迅速溢出到无穷大。

07-24 19:00