递归编程的执行机制与分析
递归编程是一种强大的编程技术,它允许函数在其定义中调用自身。在深入探讨递归编程的过程中,我们将从向量余弦计算的代码示例入手,逐步分析子程序间的控制流、递归调用序列、递归树以及程序栈的工作原理。
1. 向量余弦计算代码示例
以下是用于计算两个向量夹角余弦值的代码:
import math
def dot_product(u, v):
s = 0
for i in range(0, len(u)):
s = s + u[i] * v[i]
return s
def norm_Euclidean(v):
return math.sqrt(dot_product(v, v))
def cosine(u, v):
return dot_product(u, v) / norm_Euclidean(u) / norm_Euclidean(v)
# Example
a = [2, 1, 1]
b = [1, 0, 1]
print(cosine(a, b))
在执行这段代码时,理解子程序的调用顺序至关重要。子程序在调用其他方法时,必须等待被调用的方法完全处理完毕才能终止。例如,在计算 cosine 函数时,会依次调用 dot_product 和 norm_Euclidean 函数。
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



