本文主要是介绍向量点积计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
在线性代数、计算几何中,向量点积是一种十分重要的运算。
给定两个 n 维向量 a=(a1,a2,⋯,an) 和b=(b1,b2,⋯,bn),求点积a·b=a1b1+a2b2+⋯+anbn。
输入格式
第一行是一个整数 n。1≤n≤1000。
第二行包含 n 个整数 a1,a2,⋯,an。
第三行包含 n 个整数 b1,b2,⋯,bn。
相邻整数之间用单个空格隔开。每个整数的绝对值都不超过 1000。
输出格式
一个整数,即两个向量的点积结果。
输入输出样例
输入 #1
3
1 4 6
2 1 5
输出 #1
36
所以,知道提我们可以用以下代码求a·b:
int s=0; //用来计算a·b
for(int i=1;i<=n;i++){s+=a[i]*b[i]
}
所以,我们只需要把上面的代码代入进去,就有了成品代码了:
#include<bits/stdc++.h>
using namespace std;
int main(){int n,a[10005],b[10005];cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){cin>>b[i];}int s=0;for(int i=1;i<=n;i++){s+=a[i]*b[i];}cout<<s; return 0;
}
这篇关于向量点积计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!