25、递归编程入门:从基础到应用

递归编程入门:从基础到应用

1. 递归编程基础

1.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))

上述代码中, dot_product 函数用于计算两个向量的点积, norm_Euclidean 函数用于计算向量的欧几里得范数, cosine 函数则根据点积和范数计算两个向量夹角的余弦。

在执行这段代码时,函数调用和返回的顺序非常重要。例如,在调用 cosine 函数时,它会先调用 dot_product 函数计算点积,再调用 norm_Euclidean 函数计算范数。只有当所有被调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值