關於c++隨機種子srand( time(NULL) )的設置問題


設置隨機種子srand( time(NULL) ) ,在程序中只需要設置一次就好,而且不能被調用多次,直接看列子。

a:每次都重新設置隨機種子

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<ctime>
 4 #include<cmath>
 5 using namespace std;
 6 void fun() 
 7 {
 8     srand((unsigned)time(NULL));//每次都重新設置隨機種子
 9     cout << rand() << endl;
10 }
11 int main()
12 {
13     for (int i = 0; i < 5; i++)
14         fun();
15     system("pause");
16     return 0;
17 }

結果:每次結果是一樣的。

 

b:只設置一次隨機種子

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<ctime>
 4 #include<cmath>
 5 using namespace std;
 6 void fun() 
 7 {
 8     cout << rand() << endl;
 9 }
10 int main()
11 {
12     srand((unsigned)time(NULL));//設置一次隨機種子
13     for (int i = 0; i < 5; i++)
14         fun();
15     system("pause");
16     return 0;
17 }

結果:得到想要的效果。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM