本帖最後由 鄭繼威 於 2022-12-7 20:05 編輯
在預設的情況下,rand()的隨機種子(seed :指起始點,即最小值) 是1,而相同的隨機種子產生的結果都是一樣的。那初始值該給多少?初始值給固定的值都沒用,要會隨著環境變動的值才有意義,像是 記憶體使用量、process id 、CPU 使用率等,這些都是會隨環境變動,但有些變動性可能不大,而最常用來給初始值的,是時間,所以程式可以修改如下:
搭配時間函式,產生20組隨機亂數。
time(NULL)可回傳,從格林威治時間 1970年1月1號 0時0分0秒開始到現在的秒數。- #include<iostream>
- #include<cstdlib>
- #include<ctime>
- using namespace std;
- int main()
- {
- srand(time(NULL));
- for(int i=1; i<=20; i++)
- cout<<rand()<<endl;
- system("pause");
- return 0;
- }
複製代碼 |