| 1.rand函数的作用: | 生成一个伪随机数 |
| 2.函数声明: | int rand(void); |
| 3.需要的头文件: | stdlib.h |
| 4.注释: | rand 函数在 0 到 RAND_MAX范围内返回一个伪随机的整数。在调用 rand 函数之前,使用 srand 函数为伪随机数生成器设置种子 |
补充说明:
1.RAND_MAX:RAND_MAX 是
头文件中的一个宏,它用来指明 rand() 函数所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767(0x7fff)
2.rand() 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。种子和随机数之间的关系是一种正态分布。
在没有调用 srand() 函数之前,调用rand()函数生成的随机数序列和调用srand()函数并设置种子的值为1后生成的序列相同(下面有代码进行说明),我们可以通过 srand() 函数来重新“播种”,这样生成的随机数序列就会发生改变。
二、srand函数3.在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么种子的值就不同,最终的生成的随机数序列也就不同(下面有代码进行说明)。
| 1.srand函数的作用: | 设置一个随机的起点 |
| 2.函数声明: | void srand(unsigned int seed); |
| 3.需要的头文件: | stdlib.h |
| 4.参数: | 用于生成随机数的种子 |
代码1:
#include#include int main() { int i = 0; int ret = 0; for (i = 0; i < 10; i++) { ret = rand(); printf("%d ", ret); } printf("n"); srand(1); //将种子的值设置为1 for (i = 0; i < 10; i++) { ret = rand(); printf("%d ", ret); } return 0; }
输出的结果是:
代码2:
#include#include #include int main() { int i=0; //用当前时间为随机数生成器设置种子 srand((unsigned int)time(NULL)); for(i=0; i<10; i++){ printf("%d ",rand()); } printf("n"); return 0;
输出的结果:
输出的结果和代码1的结果并不一样,而且每次执行同样的代码,结果都不一样



