一、rand函数
如果只调用rand函数不给定范围,则会从0到RAND_MAX中生成随机数,其值为2147483647。
头文件
#include<stdlib.h>
代码
# include <iostream> using namespace std; int main() { for (int i=0; i<10; i++) { cout << rand() << endl; } }
运行结果生成10个随机数:
283
168543
7438
43956063
27483993
87432047281
633283742
387142
7327082
9243738284
二、srand函数
头文件
#include<stdlib.h>
#include<time.h>
代码
#include <time.h> #include <stdlib.h> int mian(){ srand((unsigned int)time(NULL)); }
三、random
头文件
#include <random>
uniform_int_distribution
指定范围的随机⾮负数。是⼀个随机数分布类,也是个模板类,模板参数为⽣成随机数的类型(不过只能是 int、unsigned、short、unsigned short、long、unsigned long、long long、unsigned long long 中的⼀种)。它的构造函数接受两个值,表⽰随机数的分布范围(闭区间)。
uniform_real_distribution
指定范围的随机实数。是⼀个随机数分布类,它也是模板类,参数表⽰随机数类型(可选类型为 float、double、long double)。构造函数也需要最⼤值和最⼩值作为参数。(左闭右开区间)
bernoulli_distribution
指定概率的随机布尔值。是⼀个分布类,但它不是模板类。它的构造函数只有⼀个参数,表⽰该类返回 true 的概率,该参数默认为 0.5,即返回 true 和 false 的概率相等。
代码
#include <iostream>
#include <random>
using namespace std;
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(2, 5); //取值范围
int random_number = distrib(gen);
std::cout <<random_number;
}
感谢您的支持