c++生成指定范围的随机数
时间: 2023-11-26 14:56:56 浏览: 54
你可以使用C语言中的rand()函数生成随机数,然后通过取模运算限定随机数的范围。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int min = 10; // 最小值
int max = 100; // 最大值
int range = max - min + 1; // 生成随机数的范围
int random_num;
// 设置随机数种子
srand((unsigned int) time(NULL));
// 生成随机数
random_num = rand() % range + min;
printf("生成的随机数为:%d\n", random_num);
return 0;
}
```
在这个例子中,我们通过取模运算限定了随机数的范围在10到100之间。如果需要生成其他范围的随机数,只需要修改min和max的值即可。
相关问题
c++生成一个随机数
你可以使用 `<random>` 头文件中的随机数生成器来生成随机数。下面是一个使用 C++ 的 `<random>` 头文件生成随机数的示例代码:
```cpp
#include <iostream>
#include <random>
int main() {
// 创建一个随机数引擎
std::random_device rd;
std::mt19937 gen(rd());
// 定义随机数的范围
int min = 1;
int max = 100;
// 创建一个分布对象来指定随机数范围
std::uniform_int_distribution<> dis(min, max);
// 生成随机数
int random_num = dis(gen);
// 输出结果
std::cout << "随机数: " << random_num << std::endl;
return 0;
}
```
上述代码中,我们首先使用 `std::random_device` 来获取一个种子,然后将该种子传递给 `std::mt19937` 引擎。接下来,我们使用 `std::uniform_int_distribution` 来定义随机数的范围,并将引擎传递给该分布对象。最后,调用 `dis(gen)` 来生成一个随机数。
这样,运行程序时,就会输出一个在指定范围内的随机数。
C++不用ctime生成随机数
可以使用C++11中的`<random>`头文件中的随机数生成器来生成随机数,这种方法比使用`ctime`更为安全和高效。以下是一个例子:
```c++
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
for (int i = 0; i < 10; ++i) {
std::cout << dis(gen) << ' ';
}
std::cout << std::endl;
return 0;
}
```
`std::random_device`是一个设备,用于生成真正的随机数种子。`std::mt19937`是一个随机数生成器,使用Mersenne Twister算法生成随机数。`std::uniform_int_distribution`是一个分布,它将随机数分布在指定的范围内。
这个例子中,我们使用`std::uniform_int_distribution`生成一个1到6之间的随机整数,并将其输出到控制台。