随机数生成
在C语言中,我们可以使用标准库 <stdlib.h>
中提供的函数来生成随机数。主要涉及两个函数:rand()
和 srand()
。
rand() 函数
rand()
函数用于生成一个随机整数,范围在 0 到 RAND_MAX
之间。RAND_MAX
是一个常量,其值至少为 32767。
基本用法:
c
#include <stdlib.h>
int random_number = rand();
srand() 函数
srand()
函数用于设置随机数生成器的种子。如果不设置种子,程序每次运行时会生成相同的随机数序列。
基本用法:
c
#include <stdlib.h>
#include <time.h>
srand(time(NULL)); // 使用当前时间作为种子
生成指定范围的随机数
要生成指定范围内的随机数,可以使用取模运算符:
c
// 生成 0 到 99 之间的随机数
int random_0_to_99 = rand() % 100;
// 生成 1 到 100 之间的随机数
int random_1_to_100 = rand() % 100 + 1;
// 生成 a 到 b 之间的随机数
int random_a_to_b = rand() % (b - a + 1) + a;
完整示例
c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 设置随机数种子
srand(time(NULL));
// 生成并打印5个随机数
for (int i = 0; i < 5; i++) {
printf("随机数 %d: %d\n", i + 1, rand() % 100);
}
return 0;
}
注意事项
应该只在程序开始时调用一次
srand()
,而不是在循环中重复调用。如果需要生成浮点数随机数,可以将
rand()
的结果除以RAND_MAX
:cdouble random_float = (double)rand() / RAND_MAX; // 生成 0 到 1 之间的随机浮点数