c 语言随机数生成和定义范围
时间: 2024-10-01 08:03:15 浏览: 123
在C语言中,随机数的生成通常通过stdlib.h库中的rand()函数实现。这个函数返回一个伪随机整数,其范围取决于系统提供的随机数种子。为了生成指定范围内的随机数,你需要配合使用一些数学操作。
首先,你需要获取当前的随机数种子,可以使用 srand(time(0)) 函数初始化,其中time(0)表示以当前时间作为随机种子。然后,你可以定义一个函数如下面这样生成指定范围内的随机数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义一个函数生成指定范围内的随机数
int random_between(int lower, int upper) {
// 确保upper大于lower
if (lower > upper) {
return lower;
}
// 使用Mersenne Twister算法生成随机数
unsigned int seed = rand();
while (seed == 0) {
seed = rand(); // 如果种子是0,再次获取新的随机数
}
// 计算偏移并限制在范围内
return lower + (upper - lower) * (seed % (RAND_MAX / (upper - lower) + 1));
}
int main() {
// 设置随机数种子
srand(time(0));
// 生成1到10之间的随机数
int num = random_between(1, 10);
printf("Random number between 1 and 10 is: %d\n", num);
return 0;
}
```
阅读全文