擅长:python、mysql、java
<p>您可以研究如何扩展递归关系,也可以简单地使用<a href="https://www.python-course.eu/python3_memoization.php" rel="nofollow noreferrer">memoization</a>:</p>
<pre><code>def memoize(f):
memo = {}
def helper(x):
if x not in memo:
memo[x] = f(x)
return memo[x]
return helper
@memoize
def rec(n):
if n<1:
return 1
return rec(n//4)+rec(n//2)
print(rec(12345678987654321))
</code></pre>
<p>上面的步骤在我的电脑上大约需要30毫秒,包括启动Python解释器所需的时间。你知道吗</p>
<p>通过不多次计算<code>rec()</code>相同值的<code>n</code>(原始版本反复重复相同的计算,浪费了大量CPU周期),memoization加快了速度。你知道吗</p>