這裏的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次?
你能更精確嗎?你期望看到什麼?你看到了什麼?這如何不能達到你的期望? –