深圳产品网站建设,wordpress底板版权,中国轻工建设协会网站,如何获取网站js图片参考文章 笔记 | 如何正确地生成一个随机数 CF曾提到#xff1a;Don’t use rand(): a guide to random number generators in C 文章总结#xff1a; 1 .rand()的随机范围太小了#xff0c;在某些平台下#xff08;例如 Windows#xff09;RAND_MAX 只有 32768。如果需要…参考文章 笔记 | 如何正确地生成一个随机数 CF曾提到Don’t use rand(): a guide to random number generators in C 文章总结 1 .rand()的随机范围太小了在某些平台下例如 WindowsRAND_MAX 只有 32768。如果需要的范围大于 32768那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了或者考虑用 mt_rand() 来替代它。 2. random_shuffle(打乱数组顺序) 3. rand()使用的伪随机算法是 linear congruential generator (线性同余发生器在低位循环节很低 rand()不行那咋办文章中给了东西mt19937(范围无限制可以自己设定)mt19937是c11中加入的新特性具有速度快周期长的特点 无范围 使用方法
#includerandom
#includectime
std::mt19937 rnd(time(0));
int main()
{printf(%lld\n,rnd());return 0;
}C无范围限制
#include iostream
#include chrono
#include random
using namespace std;
int main()
{// 随机数种子unsigned seed std::chrono::system_clock::now().time_since_epoch().count();mt19937 rand_num(seed); // 大随机数cout rand_num() endl;return 0;
}
手动加上范围
#include iostream
#include chrono
#include random
using namespace std;
int main()
{// 随机数种子unsigned seed std::chrono::system_clock::now().time_since_epoch().count();mt19937 rand_num(seed); // 大随机数uniform_int_distributionlong long dist(0, 1000000000); // 给定范围cout dist(rand_num) endl;return 0;
}