下面是详细讲解 C 语言使用 rand 函数生成随机数的完整攻略:
rand 函数简介
rand() 函数是 C 语言标准库中的一个函数,用于生成一个 [0, RAND_MAX] 范围内的伪随机数。其中,RAND_MAX 是一个宏定义,通常为 32767。
在使用该函数之前,需要先调用 srand() 函数,来设置种子值,以便产生随机数序列。
随机数生成步骤
- 调用 srand() 函数并传入一个种子值。
srand((unsigned)time(NULL));
这里的 time(NULL)
函数返回当前操作系统时间的秒数,作为 srand() 的种子值,可以保证每次程序运行时生成的随机数不同。
- 调用 rand() 函数生成随机数。
int random_num = rand();
这将生成一个伪随机数,其值在 [0, RAND_MAX] 范围内。
- 将生成的随机数映射到需要的范围内。
例如,我们需要生成一个在 [1, 100] 范围内的随机数,可以使用以下公式:
int random_num = rand() % 100 + 1;
其中,%
表示取模运算,得到的余数在 [0, 99] 范围内,再加上 1 就得到了 [1, 100] 范围内的随机数。
示例说明
- 生成 100 个在 [0, 9] 范围内的随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned)time(NULL)); // 设置种子值
for (int i = 0; i < 100; i++) {
printf("%d ", rand() % 10); // 生成随机数并输出
}
printf("\n");
return 0;
}
这里使用了 rand() % 10
生成 [0, 9] 范围内的随机数,输出结果如下:
0 2 8 3 6 2 2 6 4 9 6 9 7 5 2 9 5 5 0 3 9 4 9 5 2 4 2 6 4 2 5 8 0 0 4 5 2 5 8 7 4 7 4 0 5 2 2 7 5 5 5 5 3 9 5 3 0 5 9 4 7 3 4 7 6 9 5 7 7 5 6 0 1 2 3 6 2 8 8 2 2 9 2 1 6 5 5 0 7 9 3 2 7 6 6 1 1 1 6
1 7 4 6 8 9 4 9 0 7 1 1 3 9 5 3 8 6 3 7 5 2 8 8 8 4 3 0 1 0 5 5 9 1 9 9 8 3 2 9 5 8 2 9 0 6 3 5 8 9 8 3 5 3 9 8 2 3 9 1 8 7 9 4 4 4 4 8 6 5 2 7 2 4 4 4 8 1 9 2 2 8 2 9 6 8 7 5
...
根据输出结果可以看出,每次程序运行时生成的随机数序列都不同。
- 生成 10 个 [1, 100] 范围内的随机数,并计算它们的平均值。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned)time(NULL)); // 设置种子值
int sum = 0;
for (int i = 0; i < 10; i++) {
int random_num = rand() % 100 + 1; // 生成 [1, 100] 范围内的随机数
printf("%d ", random_num); // 输出生成的随机数
sum += random_num; // 累加随机数值
}
printf("\n平均值为:%g\n", (double)sum / 10.0); // 输出平均值
return 0;
}
这里使用了 rand() % 100 + 1
生成 [1, 100] 范围内的随机数,并使用 sum
变量累加随机数的值,最后计算平均值并输出,输出结果如下:
89 34 15 16 11 68 85 38 71 57
平均值为:45.4
以上就是 C 语言使用 rand 函数生成随机数的完整攻略,希望能对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言使用rand函数生成随机数 - Python技术站