C语言产生随机数的函数(1和2和3随机数)
时间: 2024-10-11 15:06:43 浏览: 33
在C语言中,生成随机数通常需要用到标准库中的`<stdio.h>`和`<stdlib.h>`头文件。以下是三种常见的方法:
1. **rand()函数**:这是最基础的随机数生成函数,可以返回0到RAND_MAX之间的整数。如果你想要生成1到2之间的随机数,你可以先从0开始,然后加上1,确保范围。例如:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
srand(time(0)); // 设置随机种子
int random = rand() + 1; // 生成1到RAND_MAX+1的随机数
if (random > 2) random = 2; // 如果大于2,则限制在2内
printf("Random number between 1 and 2: %d\n", random);
return 0;
}
```
2. **uniform_int_distribution**(C++11及以上版本):如果你使用C++,可以利用 `<random>` 库提供的 `std::uniform_int_distribution` 来更精确地控制范围:
```cpp
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_int_distribution<int> distribution(1, 3);
int random_number = distribution(generator);
std::cout << "Random number between 1 and 3: " << random_number << "\n";
return 0;
}
```
3. **mt19937引擎和cstdlib库(C++)**:在C++中,也可以使用 `<cstdlib>` 的 `std::mt19937` 和 `std::uniform_int_distribution` 生成1到3的随机数,类似C++11的例子。
记得在生成随机数前设置随机数种子,通常使用 `srand(time(NULL))` 或者 `srand(time(0))`,以确保每次程序运行得到不同的随机序列。
阅读全文