C++RNG(随机数生成)优化
C++ RNG (Random Number Generation) Optimization
首先,我想澄清一下,我对C++很陌生,我已经编写了一些代码,可以输出一组随机的16位数字。为此,我使用了一个在线教程和相对较高的批处理体验(这个想法来自一个运行速度相当慢的批处理文件,我想将两个批处理文件迁移到c++中,以比较它们的运行方式,因为有两个类似的项目,一个用于随机数生成,也就是这个项目,另一个用于生成随机字符串(。由于我对c++不是很在行,我想得到一些帮助来优化代码,因为我觉得这可以用更少的行完成既然你已经掌握了背景,我的代码如下
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand(std::time(0));
int random0 = 0;
int random1 = 0;
int random2 = 0;
int random3 = 0;
int random4 = 0;
int random5 = 0;
int random6 = 0;
int random7 = 0;
int random8 = 0;
int random9 = 0;
int random10 = 0;
int random11 = 0;
int random12 = 0;
int random13 = 0;
int random14 = 0;
int random15 = 0;
for (int i = 0; i < i+1; ++i)
{
random0 = std::rand() % 9;
random1 = std::rand() % 9;
random2 = std::rand() % 9;
random3 = std::rand() % 9;
random4 = std::rand() % 9;
random5 = std::rand() % 9;
random6 = std::rand() % 9;
random7 = std::rand() % 9;
random8 = std::rand() % 9;
random9 = std::rand() % 9;
random10 = std::rand() % 9;
random11 = std::rand() % 9;
random12 = std::rand() % 9;
random13 = std::rand() % 9;
random14 = std::rand() % 9;
random15 = std::rand() % 9;
std::cout << random0 << random1 << random2 << random3 << random4 << random5 << random6 << random7 << random8 << random9 << random10 << random11 << random12 << random13 << random14 << random15 << std::endl;
}
return 0;
}
提前感谢您的帮助,如果我触发了任何有经验的c++编码器的OCD,我很抱歉。
和我编写了一些代码,输出一组随机的16位数字。
我将其读取为打印0
和999999999999999
之间的随机数。使用计算器,我将所有9位转换为大于32位但小于64位的23 86F2 6FC0 FFFF
,因此我们可以使用uint64_t
生成随机数可以用std::uniform_int_distribution<uint64_t>
完成,将生成的数字打印为16位是std::setw
和std::setfill
的任务
#include <random>
#include <iostream>
#include <iomanip>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
uint64_t maxlim = 9999999999999999 ;
std::uniform_int_distribution<uint64_t> dis(0, maxlim);
std::cout << std::setfill('0') << std::setw(16) << dis(gen) << std::endl;
}
这仅对C++11及更高版本有效
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- 空基优化子对象的地址
- 关闭||运算符优化
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 返回值优化:显式移动还是隐式
- 人脸跟踪arduino代码的优化
- if数组上的随机数
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 纯函数,为什么没有优化
- 为什么大多数 pair 实现默认不使用压缩(空基优化)?
- 如何以优化的方式同时迭代两个间距不相等的数组
- 半随机数生成C++
- 小字符串优化(调试与发布模式)
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 浮点定向舍入和优化
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 具有随机数的二维数组不会更改
- C++RNG(随机数生成)优化