小韦老师@神犇营-my0213-向量点积计算

小韦老师@神犇营-my0213-向量点积计算

题目:

描述

在线性代数、计算几何中,向量点积是一种十分重要的运算。给定两个 n 维向量 a = (a1, a2, …, an) 和 b = (b1 ,b2, …, bn),求点积 a · b = a1 * b1 + a2 * b2 + … + an * bn。

输入

第一行是一个整数 n(1 ≤ n ≤1000);

第二行包含 n 个整数 a1, a2, …, an;

第三行包含 n 个整数 b1, b2, …, bn;

相邻整数之间用单个空格隔开。每个整数的绝对值都不超过 1000。

输出

一个整数,即两个向量的点积结果。

输入样例1

3
1 4 6
2 1 5

输出样例1

36

题解:

整体思路:

一个向量有几个数就说这向量是几维,例如一个向量有 n 个数,就称这个向
量是 n 维向量。

向量点积运算就是把两个向量对应位置的值相乘,再进行累加即可。

具体步骤:

1.定义两个数组,用来存储两个向量:

		const int N = 1e3 + 10;  // 定义数组的大小,1e3 是 1000 
		int a[N], b[N];  // 定义两个一维数组,用来存储向量 

2.定义一个变量 n,表示维度(也即一个向量有几个数),并输入 n。
3.输入第一个向量的 n 个数,存储在数组 a 中。
4.输入第二个向量的 n 个数,存储在数组 b 中。
5.定义一个累加器 sum,用来存储当前累加的和。
6.枚举两个向量的每一个位置,将对应位置相乘,再累加到累加器中:

		    // 枚举 n 维向量的每一个位置,这里通过枚举数组的每一个位置获得 
		    for (int i = 0; i < n; i++) {   
		        // 将 a 向量与 b 向量对应位置的整数相乘,并且累加到累加器中 
		        // 这里是数组对应的位置(下标) 
		        sum += a[i] * b[i];  
		    } 

7.输出累加器。

完整代码
#include <bits/stdc++.h>

using namespace std;

const int N = 1e3 + 10;  // 定义数组的大小,1e3 是 1000 
int a[N], b[N];  // 定义两个一维数组,用来存储向量 

int main() {
	
	int n;  // 定义 n,表示向量的维度 
	cin >> n;  // 输入 n 
	for (int i = 0; i < n; i++) {  // 输入向量 a 的 n 个整数 
		cin >> a[i];
	}
	for (int i = 0; i < n; i++) {  // 输入向量 b 的 n 个整数 
		cin >> b[i];
	}
	int sum = 0;  // 累加器,用来存储当前累加的和,记得初始化为 0 
	// 枚举 n 维向量的每一个位置,这里通过枚举数组的每一个位置获得 
	for (int i = 0; i < n; i++) {   
		// 将 a 向量与 b 向量对应位置的整数相乘,并且累加到累加器中 
		// 这里是数组对应的位置(下标) 
		sum += a[i] * b[i];  
	}
	cout << sum;  // 输出累加器
	
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值