我正在寫函數,我需要找到1 - 10之間的隨機數。最簡單的方法之一是使用random()libc調用。我打算使用這個功能很多。但我不知道它會有多高效。如果任何人有關於隨機()的效率的想法,這將是一個幫助?C++中的隨機()效率
另外我注意到random()在2次運行中給出相同的模式。
int main()
{
for(int i=0;i<10;i++)
{
cout << random() % 10 << endl;
}
}
輸出第一時間: - 3 6 7 5 3 5 6 2 9 1
第二時間也我得到相同的輸出。
那麼它是如何隨機的?
使用探查器如果你擔心性能。如果您運行具有相同種子的隨機數發生器,它將始終提供相同的輸出。 – Almo 2015-01-31 18:53:43
其實我使用的是Linux perf,但它沒有顯示任何東西(比如在哪裏消耗時間)。它只是顯示了它消耗了多少CPU週期,佔CPU總量的1.73%左右。 – eswaat 2015-01-31 18:57:12
「效率」與「性能」或「效率」中的「隨機數字有多好」一樣?後者顯然是「您需要使用srand()」[或類似的]在不同點啓動隨機數序列的情況。 「好」隨機數並不是微不足道的,所以如果你需要真正好的隨機數,你可能需要進一步的工作。可預測性成爲問題的遊戲,或在分配很重要的科學目的中使用數字] – 2015-01-31 19:01:00