mysql 内积_C++ inner_product内积计算方法详解

两个 vector 的内积是对应元素的乘积之和。为了能够得到内积,vector 的长度必须相同。内积是矩阵算术的基本运算。两个矩阵的乘积是一个矩阵,它是由第一个矩阵的每一行乘以第二个矩阵的每一列得到的,如图 1 所示。

460e2a0babb0ef2462e1447e1719acb3.png

图 1 矩阵乘法和内积运算

为了使矩阵内积成为可能,左操作数(矩阵 A)的列数必须和右操作数(矩阵 B)的行数相同。如果左操作数有 m 行和 n 列(mxn 的矩阵),右操作数有 n 行和 k 列(nxk 的矩阵),结果是一个 m 行和 k 列的矩阵(mxk 的矩阵)。

定义在 numeric 头文件中的 inner_product() 算法可以计算两个 vector 的内积。这个函数模板有 4 个参数:前两个参数是定义第 1 个 vector 的输入迭代器,第 3 个参数是确定第 2 个 vector 的开始输入迭代器,第 4 个参数是和的初值。算法会返回 vector 的内积。例如:

std::vector v1(10);

std::vector v2(10);

std::iota(std::begin(v1), std::end(v1), 2); // 2 3 4 5 6 7 8 9 10 11

std::iota (std::begin(v2) , std::end(v2),3); // 3 4 5 6 7 8 9 10 11 12

std::cout << std::inner_product(std::begin(v1), std::end(v1), std::begin(v2),0)<

因为两个 vector 的内积的标准定义,内积的初值为 0,但可以选择为对应元素的乘积 之和指定不同的初值。在使用 inner_product() 时,使用正确的类型很重要,如下所示:

std::vector data {0.5, 0.75, 0.85};

auto resultl = std::inner_product(std::begin(data), std::end(data), std::begin(data),0);

double result2 = std::inner_product(std:rbegin(data),std::end(data), std:: begin(data), 0);

auto result3 = std::inner_product(std::begin(data), std::end(data), std:rbegin(data)r 0.0);

std::cout << resultl << " "<

第二条和第三条语句显然做的是同样的事,但返回的类型是由第 4 个参数决定的。即使

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值