Hello大家好! 很高兴与大家见面! 给生活添点快乐,开始今天的编程之路。
1 功能:其用于随机数的生成,但是其生成的随机数是一个伪随机数会随其“种子”的变化而变化。
2 生成的伪随机数的范围是0~~~~RAND-MAX之间,而RAND-MAX会随编译器的不同而变化,大部分是32767。
3 rand是一个函数使用时需要包含头文件:stdlib.h。
4 什么是“种子”呢?
测试一下rand函数,多次调用,产生五个随机数



虽然生成了五个随机数;但是我们多次运行时会发现每次生成的随机数都是一样的,这是因为rand函数生成的随机数是一个伪随机数,这种随机数是通过某种算法生成的随机数,其实真正的随机数是无法预测的。rand函数数是对⼀个叫“种⼦”的基准值进⾏运算⽣成的随机数。
之所以上面运行的结果一样的原因是因为rand函数在⽣成随机数时默认的种⼦是1。如果要⽣成不同的随机数,就要让种⼦是变化的。
1 作用
(1) ⽤来初始化随机数的⽣成器的,srand的原型如下:(注意srand的返回值的类型为(unsigned int)
void srand(unsihned int seed);
(2) 可以使用srand 函数的参数seed来设置rand函数⽣成随机数时的种子,种子在不断变化随机数就在不断变化,所以程序员在使用rand函数之前会先调用srand函数。也就是说只要srand的种子是随机的,rand就能生成随机数。但是我们反过来想一想srand的种子是随机的,在生成随机数时又需要一个随机数,这不就矛盾了吗?这时候就要引入time函数。
1 因为时间在不断变化所以我们一般所以程序运行的时间作为种子,这是引用time函数便可以获得这个时间。
2 返回时间/类型: time 函数会返回当前的⽇历时间,其返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的差值,单位是秒。返回的类型是time_t类型的,time_t 类型本质上其实就是32位或者64位的整型类型。
3 time函数的时候需要包含头⽂件:time.h
4时间戳: time函数的参数 timer 如果是⾮NULL的指针的话,函数也会将这个返回的差值放在timer指向的内存中带回去。如果 timer 是 NULL,就只返回这个时间的差值。time函数返回的这个时间差也被叫做:时间戳。
5 让time函数返回时间戳的写法:
time(NULL);
四 运用rand/srand/time生成随机数



1 如果我们要⽣成0~99之间的随机数
rand()% 100;
2 如果要⽣成100~200的随机数
100+rand()%(200-100+1);
总结: 如果要⽣成a~b的随机数,⽅法是:
a+rand()%(b-a +1);
本篇文章就到此结束,希望有所能帮到读者更好的了解分支和循环。