前言
众所周知,c++里有一个rand()函数,用来生成随机数。但是ME感觉还不够,不够随机,然后就用随机数做了个随机数(奇怪的想法)。
思路
用c++的函数获得当前时间的时间戳(1970年1月1日到当前时间的秒数),然后将其转化为几天几时几分几秒,用rand模一个指定参数生成4个随机数,分别乘上天数、小时数、分钟数、秒数,相加,最后再加1。这就搞定了。
代码
long long Rand(int CS)
{
time_t t=time(NULL);
int day=t/86400;
int p=t%86400;
int shi=p/3600;
int fen=p/60%60;
int miao=p%60;
long long u=miao*(rand()%CS)+fen*(rand()%CS)+shi*(rand()%CS)+day*(rand()%CS)+1;
return u;
}
搭配上srand,加个<cstdlib>和<ctime>头文件,这玩意就差不多了。