我正在使用 64 位 Python 3.3.1、pylab 和 32GB 系统 RAM。这个功能:
def sqrt2Expansion(limit):
x = Symbol('x')
term = 1+1/x
for _ in range(limit):
term = term.subs({x: (2+1/x)})
return term.subs({x: 2})
产生这种表达式:1 + 1/(2 + 1/(2 + 1/(2 + 1/(2 + 1/(2 + 1/(...))))))
. 当被调用为:sqrt2Expansion(100)
返回有效结果,但sqrt2Expansion(200)
产生RuntimeError
许多回溯页面并挂起 pylab/IPython 解释器,并且有大量未使用的系统内存。任何想法如何更有效地实施它?我想打电话sqrt2Expansion(1000)
,但仍然得到结果。