Skip to content

随机数生成

在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;
}

注意事项

  1. 应该只在程序开始时调用一次 srand(),而不是在循环中重复调用。

  2. 如果需要生成浮点数随机数,可以将 rand() 的结果除以 RAND_MAX

    c
    double random_float = (double)rand() / RAND_MAX;  // 生成 0 到 1 之间的随机浮点数