c++;随机数不是随机数 我试图用C++生成随机数,但它们看起来不是很随机。我当然知道它们只是伪随机的,但我所发现的实际上甚至不是将其切割为伪随机的。这是我的密码 #include <iostream> #include <time.h> int main(){ srand (time(NULL)); std::cout << (double) rand() / (double) RAND_MAX; return 0; } #包括 #包括 int main(){ srand(时间(空)); std::cout

c++;随机数不是随机数 我试图用C++生成随机数,但它们看起来不是很随机。我当然知道它们只是伪随机的,但我所发现的实际上甚至不是将其切割为伪随机的。这是我的密码 #include <iostream> #include <time.h> int main(){ srand (time(NULL)); std::cout << (double) rand() / (double) RAND_MAX; return 0; } #包括 #包括 int main(){ srand(时间(空)); std::cout,c++,random,C++,Random,看起来编译器上的rand实现非常差,初始随机值高度依赖于种子值。在开始使用返回值之前,可以生成并丢弃几个随机值 或者,更好的是,不要调用rand。使用标题提供的工具。看起来编译器上的rand实现非常差,初始随机值高度依赖于种子值。在开始使用t之前,可以生成并丢弃几个随机值他返回值 或者,更好的做法是,不要调用兰德。使用标题提供的工具。您可以尝试: 哈希3: unsigned int hash3(unsigned int h1, unsigned int h2, unsigned int h3)

看起来编译器上的
rand
实现非常差,初始随机值高度依赖于种子值。在开始使用返回值之前,可以生成并丢弃几个随机值


或者,更好的是,不要调用
rand
。使用
标题提供的工具。

看起来编译器上的
rand
实现非常差,初始随机值高度依赖于种子值。在开始使用t之前,可以生成并丢弃几个随机值他返回值

或者,更好的做法是,不要调用
兰德
。使用
标题提供的工具。

您可以尝试:

哈希3:

unsigned int hash3(unsigned int h1, unsigned int h2, unsigned int h3)
{
    return ((h1 * 2654435789U) + h2) * 2654435789U) + h3;
}
您可以尝试:

哈希3:

unsigned int hash3(unsigned int h1, unsigned int h2, unsigned int h3)
{
    return ((h1 * 2654435789U) + h2) * 2654435789U) + h3;
}

基本问题是C手册将
rand()
描述为“坏随机数生成器”。您应该使用
库。请参阅


此外,还不清楚您是否有意仅将设定生成器种子后生成的第一个值与
srand()
进行比较,但通常,伪随机数生成器是通过设定一次种子,然后生成一系列数字来使用的。

基本问题是
rand()
被C手册描述为“坏随机数生成器”。您应该使用
库。请参阅


此外,还不清楚您是否有意仅将设定生成器种子后生成的第一个值与
srand()进行比较< /代码>,但一般来说,伪随机数生成器是通过一次播种然后生成一系列数字来使用的。

不能再现:你能添加一个你认为缺少的随机数的样本吗?你也在运行哪个平台?<代码>
返回一个介于0和
RAND_MAX
之间的数字,而不是0和1。
RAND_MAX
被定义为“至少32767”。例如,假设
RAND_MAX
为2147483647,则
RAND()
必须返回大约在1352914697和1372242050之间的值,才能生成介于0.630和0.639之间的结果。这是一个相当大的随机数范围。另一方面,您使用的是旧的C
rand()当你应该使用C++自己的函数时,@ ReMyleBeAU检查微软版本的代码> RANDMAX 。漂亮的用法。使用<代码> >包含< /Calp>不可复制:你能添加一个你认为缺少的随机数的样本吗?你也在运行哪个平台?<代码>
返回一个介于0和
RAND_MAX
之间的数字,而不是0和1。
RAND_MAX
被定义为“至少32767”。例如,假设
RAND_MAX
为2147483647,则
RAND()
必须返回大约在1352914697和1372242050之间的值,才能生成介于0.630和0.639之间的结果。这是一个相当大的随机数范围。另一方面,您使用的是旧的C
rand()
函数,当您应该使用C++自己的函数时。@RemyLebeau查看Microsoft版本的
RAND\u MAX
。非常令人沮丧。使用
#include
也从经验中我知道Microsoft的
RAND
具有此属性。根据经验,我知道Microsoft的
RAND
具有此属性。