gpt4 book ai didi

c++ - Rand() % 14 仅生成值 6 或 13

转载 作者:IT老高 更新时间:2023-10-28 22:32:02 25 4
gpt4 key购买 nike

每当我运行以下程序时,返回的值总是 6 或 13。

#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;

//void randomLegs();
//void randomPush();
//void randomPull();
//void randomMisc();


int main(int argc, const char * argv[])
{
srand(time(NULL));
//randomLegs();
cout << rand() % 14;
return 0;
}

今天和昨天我已经运行了将近一百次。

谁能告诉我我做错了什么?

谢谢。

编辑:顺便说一句,如果我将 rand() 的范围更改为 13 或 15,它就可以正常工作。

最佳答案

根据 wikipedia ,Apple 的 MCG 随机数生成器中使用的乘数是 16807。它可以被 7 整除,所以在 srand() 之后生成的第一个随机数将只有一位熵 mod 14(也就是说,它只能取两个值)。

他们那里的RNG很糟糕。不过,一个简单的解决方案是在 srand 之后调用 rand() 几次,然后丢弃结果。

关于c++ - Rand() % 14 仅生成值 6 或 13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20263187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com