我的理解是RAND_MAX依赖于机器的架构。如果机器是32位,那么rand()只会生成高达4byte的内容。如何在64位机器上使用rand()生成32位随机整数?
另外,如果我想在以后使用rand()生成数十亿个随机整数,我是否总是需要srand()?
答案 0 :(得分:1)
严重阻止使用rand()进行黑客攻击,因为在许多情况下可能会导致随机问题。
c ++ 11 <random>
标题定义了生成任何类型的高质量随机数所需的所有工具,包括任意长度的整数,浮点等......
我建议观看此内容:https://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful
答案 1 :(得分:-1)
由于你已经使用了rand(),你可能不必担心这段时间,所以你可以掩盖高位。
一般情况下,您应该在程序顶部执行srand(time(NULL))
之类的操作。否则,每次运行程序时,您将生成相同的十亿个随机数序列。