C语言中的rand()函数用于生成随机数,下面详细讲解C语言随机数生成教程并介绍rand()和srand()的用法。
一、rand()函数
rand()函数用于生成随机数,该函数在头文件stdlib.h中定义,它没有参数,返回值为一个整数,该整数为随机生成的伪随机数,取值范围为0到RAND_MAX(通常为32767)。
下面的例子将生成1到100之间的随机整数:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, r;
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++) {
r = rand() % 100 + 1;
printf("%d ", r);
}
return 0;
}
以上程序中,srand((unsigned)time(NULL))用于初始化随机数生成器,time(NULL)用于获取当前时间作为种子,使得每次运行程序生成的伪随机数序列都不同。rand() % 100 + 1生成1到100之间的随机整数。执行结果可能如下:
65 87 23 25 48 92 71 64 33 47
二、srand()函数
srand()函数用于设置随机数生成器的种子,它在头文件stdlib.h中定义。为了生成不同的随机数序列,应该在程序开始时使用不同的种子。
下面的例子将生成10个0到10之间的随机整数:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, r;
for (i = 0; i < 10; i++) {
srand((unsigned)time(NULL));
r = rand() % 11;
printf("%d ", r);
}
return 0;
}
以上程序中,因为每次进入循环时都会重新设置种子,所以每一次产生的随机数都相同,执行结果可能如下:
2 4 7 3 5 10 4 0 8 9
三、总结
C语言中的rand()函数和srand()函数是用于生成随机数的基本函数,需要注意以下几点:
- 要使用rand()函数之前需要调用srand()函数来设置随机数生成器的种子。
- 如果每次生成随机数的种子都相同,则每次生成的随机数序列都相同。
- srand()函数的参数应该是不同的,通常可以使用当前时间或者产生随机数的时间(microsecond)作为种子。
希望本篇C语言随机数生成教程对大家有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言随机数生成教程(rand和srand用法) - Python技术站