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左右迅速溢出到无穷大。