【发布时间】:2025-11-24 20:05:02
【问题描述】:
我正在尝试使用 rand() 命令生成一个随机数,但每次我得到的数字都非常相似。 这是我的代码:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand(time(0));
cout << rand();
return 0;
}
我运行了 5 次,得到的数字是: 21767 21806 21836 21862 21888
我怎样才能使数字更加不同?
【问题讨论】:
-
糟糕的随机数生成器,尤其是在 MS 平台上。请改用
<random>的amazing 产品。仅供参考,如果您确实使用了rand和srand,则应该使用#include <cstdlib>,因为标准库要求使用该标头来访问这些函数。 -
换句话说,您希望随机数不那么随机?
-
time()具有秒精度,因此如果这 5 次运行非常接近,您将使用非常相似的起始值播种 RNG。一开始你不应该在 C++ 中使用 Crand()RNG,而是使用<random>库中的 C++ RNG。 -
我希望数字更加不同,并且彼此之间不要那么接近
标签: c++ random random-seed