作者sjgau (sjgau)
看板C_and_CPP
標題Re: [問題] rand()的問題
時間Thu May 14 22:23:45 2009
以下的程式,可以解決 一謝問題
一 一定要 執行srand()
二 srand() 是用來設定亂數的 種子數,
為了確保使用與上次 不同的種子數,
犧牲一下 程式執行的速度
三 為了避免時間很接近的問題,讓前面
的 三百個亂數 虛耗掉
// by Dev-C++ 4.9.9.2
#include <cstdlib>
#include <iostream>
using namespace std;
// ----------------------------------------------
int main(int argc, char *argv[])
{
int a, b, i, t1, t2;
t1= t2= time(NULL);
while (t1 == t2) {
t1= time(NULL);// get new time
}
srand((unsigned) t1);
for (i=0;i<300;i++) {
a= rand();
}
// ------------------------------------------
for (i=0;i<10;i++) {
a= rand();
b= rand();
cout << a << ", " << b << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.231.121.250
→ goliathplus:那三百次是應該是多餘的... 05/14 22:29
→ MOONRAKER:現在的電腦跑那三百次也不到一秒,大概沒啥用 05/14 23:45
→ jlovet:沒用,不管你把前面幾百個弄掉,srand決定了就決定一切了 05/14 23:57
→ sunneo:跑300次還不如 time(NULL) + 300 -_- 05/15 00:02