项目中要用到一个随机数生成算法,但是每一次生成间隔时间很短,还要保证每一次生成的随机数都不相同,于是就想到了利用当前时间的毫秒作为随机数种子来生成。
#include <iostream>
#include <sys/time.h> // for gettimeofday()
#include <stdlib.h> // for random()
using namespace std;
unsigned int getRandomNum();
int main()
{
cout<<"random1:"<<getRandomNum()<<endl;
cout<<"random2:"<<getRandomNum()<<endl;
cout<<"random3:"<<getRandomNum()<<endl;
cout<<"random4:"<<getRandomNum()<<endl;
cout<<"random5:"<<getRandomNum()<<endl;
}
unsigned int getRandomNum()
{
// 防止每次生成的随机数一样
usleep(1000);
struct timeval now_time;
gettimeofday(&now_time, NULL);
unsigned int msec = now_time.tv_sec + now_time.tv_usec / 1000;
srand(msec);
return random();
}