📅  最后修改于: 2023-12-03 15:13:48.283000             🧑  作者: Mango
在 C 语言中,rand() 和 srand() 是两个与随机数相关的函数,它们分别用于生成随机数和设置随机数种子。
rand() 函数可以产生一个 [0, RAND_MAX] 之间的随机整数,其中 RAND_MAX 是一个由系统定义的常量,它代表了 rand() 函数所能返回的最大值,其通常取值为 32767。
srand() 函数可以用于设置 rand() 函数所使用的随机数种子。如果没有调用 srand() 函数,rand() 函数会默认使用一个常量值作为种子。在每次程序运行时,这个常量值是一样的,因此 rand() 函数每次返回的结果都是一样的。
要使用 rand() 函数产生随机数,需要先调用 srand() 函数设置一个随机数种子,否则每次调用 rand() 函数都会得到相同的结果。通常情况下,可以使用如下方法来设置随机数种子:
srand((unsigned)time(NULL));
这种方法使用当前时间作为随机数种子,以确保每次调用 rand() 函数都得到不同的结果。
随后,使用如下方法来产生随机数:
int random_number = rand() % (upper_bound - lower_bound + 1) + lower_bound;
其中,upper_bound
和 lower_bound
分别为随机数的上下界,%
为求余操作,保证生成的随机数在指定的范围内。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i;
// 设置随机数种子
srand((unsigned)time(NULL));
// 生成 10 个随机数
for (i = 0; i < 10; i++) {
int random_number = rand() % 100; // 随机数的范围是 [0, 99]
printf("%d ", random_number);
}
return 0;
}
以上代码会生成 10 个随机数,并将其打印出来。