如何用C语言实现伪随机数生成器
时间: 2024-12-18 16:33:33 浏览: 23
在C语言中,标准库中提供了`<stdlib.h>`下的`rand()`函数和`<time.h>`下的`time()`函数,可以组合使用来实现伪随机数生成器。伪随机数生成器使用的是某种算法,根据初始值(种子)计算序列,看似随机但实际上是可以预测的。以下是一个基本的使用示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 设置随机数种子
void set_seed(int seed) {
srand(seed);
}
// 生成指定范围内的随机整数
int random_int(int min, int max) {
return rand() % (max - min + 1) + min; // 避免边界溢出
}
int main() {
// 获取当前时间作为种子,保证每次程序运行结果不同
time_t t = time(0);
set_seed(t);
for (int i = 0; i < 10; ++i) {
printf("%d ", random_int(1, 100)); // 生成1到100之间的随机数
}
printf("\n");
return 0;
}
```
在这个例子中,我们先使用`time(0)`获取当前时间并设置`rand()`的种子,然后通过`rand() % range + min`的方式生成指定范围内的随机数。每次程序启动时,由于种子的不同,生成的随机数序列也会不同。
阅读全文