設置隨機種子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 }
結果:得到想要的效果。