C / C++ 随机数

我的梦境 提交于 2020-01-29 01:11:42

C 语言


整数

#include <stdlib.h>

通用公式:rand()%n+a; //a为起始值,n为整数范围

(rand()%(b-a))+a+1; //获得(a,b)的随机数
(rand()%(b-a))+a;   //获得[a,b)的随机数
(rand()%(b-a+1))+a; //获得[a,b]的随机数

浮点数

(double)rand()/(RAND_MAX +0.0);   // 获得[0,1]之间的浮点数
(double)rand()/(RAND_MAX +1.0);  // 获得[0,1)之间的浮点数
rand()+(double)rand()/RAND_MAX;  //获得随机小数

C++


#include <random>

std::vector<int> s_random_color_r(255), s_random_color_g(255), s_random_color_b(255);
std::iota(s_random_color_r.begin(), s_random_color_r.end(), 1);
std::iota(s_random_color_g.begin(), s_random_color_g.end(), 1);
std::iota(s_random_color_b.begin(), s_random_color_b.end(), 1);
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(s_random_color_r.begin(), s_random_color_r.end(), g);
std::shuffle(s_random_color_g.begin(), s_random_color_g.end(), g);
std::shuffle(s_random_color_b.begin(), s_random_color_b.end(), g);
auto shuffel_RGB = [&](){
	std::shuffle(s_random_color_r.begin(), s_random_color_r.end(), g);
	std::shuffle(s_random_color_g.begin(), s_random_color_g.end(), g);
	std::shuffle(s_random_color_b.begin(), s_random_color_b.end(), g);
};
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!