擅长:python、mysql、java
<p>一个简单的优化方法是缓存函数的结果。python提供了一种只使用hat的<a href="https://docs.python.org/3/library/functools.html#functools.lru_cache" rel="nofollow noreferrer">^{<cd1>}</a>机制。您只需使用以下内容来装饰您的功能:</p>
<pre><code>from functools import lru_cache
@lru_cache()
def function(n, F0=1, F1=2):
if n == 0:
return F0
elif n == 1:
return F1
else:
f1 = function(n-1, F0, F1)
f2 = function(n-2, F0, F1)
return f1+f2 + f1*f2
</code></pre>
<p>您可以根据您的需要稍微调整一下<code>lru_cache</code>。它与python垃圾回收器配合得非常好,因为它只将<code>WeakRefs</code>存储到对象中。在</p>
<p>测试用例:</p>
^{pr2}$
<p>印刷品:</p>
<pre><code>0: 1
1: 2
2: 5
3: 17
4: 107
5: 1943
6: 209951
</code></pre>
<p>要得到整数模的答案(问题中的模不清楚),可以执行以下操作:</p>
^{4}$