随机数
如何获取随机数
rand()是假随机 !
// 利用rand() 函数获取范围在50以内的随机数
int num = rand() % 50;
//每次获得num的值都是同样的值,因为rand()随机的都是在某一个随机数列中从第一个开始取值
srand()+rand()也是假随机 !
// 相当于由rand()得到的随机数表示取到的某一个随机数列,因为rand()得到的值总是固定,故srand()取到的随机数列也是固定
//与srand(567)等放入固定值的效果一样
srand(rand());
int num = rand() % 50;
//每次获得num的值都是同样的值,因为在固定的随机数列中用rand()随机的都是在该随机数列中从第一个开始取值
利用时间戳得到真正的随机数
*srand(rand())*之所以随机得到的值也是固定的,是因为每次的得到的随机数列固定,在随机数列中取得值也是固定。故使得每次取不同的随机数列便可以得到。
利用时间戳,将不断变化的时间点作为srand()中的值,这样每次随机取到的数列都不一样。1970.01.01.00:00:00视为时间的零点开始。
//引入包
#include<time.h>
time_t t = time(0);
//得到的t就是从时间的零点开始到本地时间的秒数
srand(t);
int num = rand() % 50;
//每次获得的num就是真正的随机数了。