这里的C++问题,使用Code :: Blocks。 我试图运行此代码以测试伪随机函数兰德()返回相同或非常相似的输出值
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int count = 0;
while (count < 10){
srand(time(NULL));
cout << rand() << ' ';
cout << (time(NULL)) << " \n";
count++;
}
return 0;
}
从这个输出是10条相等的线。这不是真正的问题,因为这里的种子是相同的,所以结果应该是相同的。问题是,如果我再次运行这个程序,它会给出10条非常相似的行,不仅在time()输出上有很小的变化,而且在rand输出上也是如此。
的函数srand(时间(NULL))是给这基本上是相同的返回值非常相似的答案,只有一点点大。
(第一次运行返回9631,然后在第二9656)。
我的问题是,是预期的行为?我怎么能得到更多不同的结果,如第一次运行38次,第二次运行671次?
你能更精确吗?你期望看到什么?你看到了什么?这如何不能达到你的期望? –