C++;RNG(随机数生成)优化 首先,我想澄清一下,我对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; } #包括 #包括 #包括 int main() { std::srand(std::time(0)); int random0=0; int random1=0; int随机数2=0; int-3=0; int-4=0; int-5=0; int-6=0; int=7=0; int-8=0; int-9=0; int-10=0; int-11=0; int随机数12=0; int=13=0; int=14=0; int随机数15=0; 对于(int i=0;i

C++;RNG(随机数生成)优化 首先,我想澄清一下,我对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; } #包括 #包括 #包括 int main() { std::srand(std::time(0)); int random0=0; int random1=0; int随机数2=0; int-3=0; int-4=0; int-5=0; int-6=0; int=7=0; int-8=0; int-9=0; int-10=0; int-11=0; int随机数12=0; int=13=0; int=14=0; int随机数15=0; 对于(int i=0;i,c++,random,C++,Random,我把一些代码放在一起,输出一组随机的16位数字 我把它理解为打印一个介于0和999999999999之间的随机数。 我用计算器将所有9-s转换为2386F26FC0FFFF,大于32位但小于64位,因此我们可以使用uint64\u t 可以使用生成随机数,将生成的数字打印为16位是和的任务 #包括 #包括 #包括 int main() { std::随机_装置rd; 标准:mt19937 gen(rd()); uint64_t maxlim=9999999999; 标准:均匀分布分布图(0,最大

我把一些代码放在一起,输出一组随机的16位数字

我把它理解为打印一个介于
0
999999999999
之间的随机数。 我用计算器将所有9-s转换为
2386F26FC0FFFF
,大于32位但小于64位,因此我们可以使用
uint64\u t

可以使用生成随机数,将生成的数字打印为16位是和的任务

#包括
#包括
#包括
int main()
{
std::随机_装置rd;
标准:mt19937 gen(rd());
uint64_t maxlim=9999999999;
标准:均匀分布分布图(0,最大值);

std::cout你的问题到底是什么?请阅读。@RichardCriten是的,对此很抱歉,认为标题是自我解释的。编辑正文以指定我需要的内容…基本上只是清理代码,因为我觉得它有太多的行does@FranckTheMiner您是否了解了
std::vector
如果你自己需要大量的变量,而这些变量的名称在末尾仅在数字上有所不同,那么你可能希望使用一个
std::vector
。@马克,嘿,谢谢你的建议。不幸的是,正如我所说,我还是个新手(比如说,我50%通过了codecademy课程),因此,即使我觉得我得到了向量的点,我也不知道如何在这种情况下实现它。你不应该一个一个数字地生成一个随机数,生成一个大的数字并打印它。这里是一个起点
std::cout-Hey,将无法检查它是如何工作的,但我需要它精确地输出16个数字。从你对我很确定你的输出是1到16位数字。如果出现这种情况,有没有办法用0来填充缺失的数字?是的,使用setw和set_fill,我今天晚些时候会更新。非常感谢你的帮助,这正是我所需要的!嘿,额外的问题,我如何将结果字符串输出到文本文件?我知道我可以使用但我不知道如何将std::setfill和std::setw与之集成
#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;
}