c++用rand函数产生2个具有m(m由键盘输入)个元素的向量。并求它们的内积。
时间: 2024-09-08 14:02:58 浏览: 76
C 代码 使用蒙特卡罗方法估计积分的值 在 M 维椭圆体的内部.rar
在C++中,你可以使用`<vector>`和`<cstdlib>`库来创建动态大小的向量,并利用`rand()`函数生成随机数。首先,你需要获取用户输入的向量长度m,然后生成随机浮点数存储到两个向量中,最后计算这两个向量的内积。以下是简单的步骤:
```cpp
#include <iostream>
#include <vector>
#include <cstdlib> // 包含rand()函数
#include <ctime> // 为了设置随机数种子
int main() {
// 设置随机数种子,以便每次程序运行结果一致(可选,如果不设,系统时间会用于初始化)
std::srand(std::time(0));
int m;
std::cout << "请输入向量的长度m: ";
std::cin >> m;
// 创建两个向量,每个元素都是范围在[0, 1)内的随机浮点数
std::vector<double> vec1(m);
std::vector<double> vec2(m);
for (size_t i = 0; i < m; ++i) {
vec1[i] = static_cast<double>(rand()) / RAND_MAX; // 转换为0到1之间的浮点数
vec2[i] = static_cast<double>(rand()) / RAND_MAX;
}
// 计算两个向量的内积
double dotProduct = 0;
for (size_t i = 0; i < m; ++i) {
dotProduct += vec1[i] * vec2[i];
}
// 输出内积
std::cout << "两个向量的内积为: " << dotProduct << std::endl;
return 0;
}
```
阅读全文