编写程序,输入两个包含若干整数的列表,把这个两个列表看做两个向量,输出这两个向量的内积。如果列表长度不一致,则以较短的列表为标准。
时间: 2024-03-20 12:42:55 浏览: 24
好的,我可以帮你编写这个程序。以下是 Python 代码实现:
```python
def dot_product(vec1, vec2):
"""
计算两个向量的内积
:param vec1: 第一个向量,类型为列表
:param vec2: 第二个向量,类型为列表
:return: 两个向量的内积
"""
# 如果列表长度不一致,则以较短的列表为标准
n = min(len(vec1), len(vec2))
# 计算内积
result = 0
for i in range(n):
result += vec1[i] * vec2[i]
return result
# 测试代码
vec1 = [1, 2, 3]
vec2 = [4, 5, 6, 7]
print(dot_product(vec1, vec2)) # 输出:32
```
以上代码实现了一个 `dot_product` 函数,该函数接受两个列表参数,分别表示两个向量,返回它们的内积。在函数内部,我们首先计算出两个列表长度的最小值 `n`,然后遍历这个最小长度的范围,计算每个元素的乘积并累加到 `result` 变量中,最后返回结果。
需要注意的是,如果列表长度不一致,我们只计算两个列表中相同下标位置的元素的乘积,并将它们相加。在上面的示例中, `vec1` 长度为 3, `vec2` 长度为 4,因此只计算 `vec1[0]*vec2[0] + vec1[1]*vec2[1] + vec1[2]*vec2[2]` 的结果,即 `1*4 + 2*5 + 3*6 = 32`。