伪随机数
rand() 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。
种子在每次启动计算机时是随机的,但是一旦计算机启动以后它就不再变化了;也就是说,每次启动计算机以后,种子就是定值了,所以根据公式推算出来的结果(也就是生成的随机数)就是固定的。
生成随机数,需要用到两个函数srand、rand,头文件为 #include <stdlib.h>
void srand ( unsigned int seed )
生成随机数种子,注意如果使用相同的种子后面的rand()函数会出现一样的随机数。
srand((unsigned)time(NULL));
int rand ( void )
根据 srand 初始的随机数种子产生一个伪随机数(注意不是真正的随机),范围为 0 - RAND_MAX。
int main() { int a, i; // 使用for循环生成10个随机数 srand((unsigned)time(NULL)); for (i = 0; i < 10; i++) { // 如果把srand()放在循环内,由于for 循环运行速度非常快,在一秒之内就运行完成了,所以生成的随机数都相同。 srand((unsigned)time(NULL)); a = rand(); printf("%d ", a); } return 1; }
设置范围[min, max]
rand() % (MAX + 1 - MIN) + MIN; // 设置范围 MIN 到 MAX
浙公网安备 33010602011771号