C++随机值和闪电战++
C++ random values and Blitz++
下面的代码正在编译和运行。代码应该将闪电矩阵初始化为随机值,但它失败了,因为矩阵的每个元素都获得了相同的值。
#include <iostream>
#include <array>
#include <algorithm>
#include <functional>
#include <random>
#include <blitz/array.h>
int main()
{
// random
std::random_device __device;
std::array<int, std::mt19937::state_size> __seeds;
std::normal_distribution<double> __distribution(0.0, 1.0);
std::mt19937 __engine;
std::generate_n(__seeds.data(), __seeds.size(), std::ref(__device));
std::seed_seq __sequence(std::begin(__seeds), std::end(__seeds));
__engine.seed(__sequence);
// matrix
blitz::Array<float,2> a(4,5);
a=__distribution(__engine);
// io
std::cout << a << std::endl;
}
输出不是我想要的
(0,3) x (0,4)
[ -1.10231 -1.10231 -1.10231 -1.10231 -1.10231
-1.10231 -1.10231 -1.10231 -1.10231 -1.10231
-1.10231 -1.10231 -1.10231 -1.10231 -1.10231
-1.10231 -1.10231 -1.10231 -1.10231 -1.10231 ]
将闪电矩阵初始化为随机值的正确方法是什么?
你说让每个单元格都达到这个值,试试这个
#include <iostream>
#include <array>
#include <algorithm>
#include <functional>
#include <random>
#include <blitz/array.h>
int main()
{
// random
std::random_device __device;
std::array<int, std::mt19937::state_size> __seeds;
std::normal_distribution<double> __distribution(0.0, 1.0);
std::mt19937 __engine;
std::generate_n(__seeds.data(), __seeds.size(), std::ref(__device));
std::seed_seq __sequence(std::begin(__seeds), std::end(__seeds));
__engine.seed(__sequence);
// matrix
blitz::Array<float,2> a(4,5);
for( int i=0; i<4; ++i ) {
for( int j=0; j<5; ++j ) {
a(i, j) =__distribution(__engine);
}
}
// io
std::cout << a << std::endl;
}
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么 Serial.println(<char[]>);返回随机字符?
- 字符串-C++后显示的随机字符
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- 使用std::mt19937从字符串中返回一个随机单词
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 如何在C++中高效地构造随机骰子
- 在类中使用随机生成器时出现性能问题
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 将字符随机转换为大写的函数
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 如何生成一个随机的 n 位数,其中 n 是任意的
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 如何使用要传递给 mt19937 的可选随机种子参数设计函数
- 在C++中随机生成 20 个非重复数字
- GCC:随机构建导致执行期间分段错误
- 如何使用 SML 随机生成八进制元组
- 当我尝试使用它时,Scanf 会抛出一个随机异常(scanf_s 也是如此)
- C++随机值和闪电战++