作者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
1F:→ goliathplus:那三百次是应该是多余的... 05/14 22:29
2F:→ MOONRAKER:现在的电脑跑那三百次也不到一秒,大概没啥用 05/14 23:45
3F:→ jlovet:没用,不管你把前面几百个弄掉,srand决定了就决定一切了 05/14 23:57
4F:→ sunneo:跑300次还不如 time(NULL) + 300 -_- 05/15 00:02