C++生成多个随机数而不循环
C++ generate multiple random numbers without loop
我想从正态分布生成 10000 个随机数。以下几行一次给我一个数字。有没有更快的方法来生成它们?也许避免循环?
std::default_random_engine generator;
std::normal_distribution<double> distribution(0.0,1.0);
double number[10000];
for (int i =0; i< 10000; i++)
number[i] = distribution(generator);
您可以使用 std::generate_n
来避免显式编写循环。
不过,这极不可能在速度上产生任何显着差异。速度受您使用的随机数生成器的影响要比调用它的循环代码的影响大得多。
我通常建议使用std::mt19937
而不是std::default_random_engine
,但它不太可能大幅提高速度(但生成的随机数质量变得更加确定(。
相关文章:
- 程序在尝试猜测它选择的随机数时进入无限循环?
- C++ - 如何保持半随机数组在循环中排序
- C ++初学者使用while循环生成随机数
- 在C++中创建随机数矩阵,无需循环
- 在 loop_C++ 中生成随机数,并在循环中生成数组 (OpenMP)
- C++生成多个随机数而不循环
- 而循环.出现随机数
- 本应生成 2 个介于 1 和 9 之间的随机数的程序C++只生成 6 和 9 并且没有正确循环
- 用循环生成随机数
- 简单循环不适用于随机数
- 当被要求使用随机数生成器时,C++程序在while循环中崩溃
- C++循环中调用伪随机数生成器函数 - 常量种子问题
- C++循环的随机数生成器
- 将随机数插入到数组中,其中每个值都是通过 for 循环输入的
- file.get()在循环C++后返回随机数
- 每次循环迭代都有相同的随机数
- 生成均匀分布的随机数(在循环中获得相同的数字)
- 为什么我在循环中使用随机数时得到相同的结果
- 使用for循环和rand生成100个随机数,并打印出最小和最大的数字
- 我能让我的while循环在每次循环时创建一个新的随机数吗