This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub ebi-fly13/Library
#include "utility/random_number_generator.hpp"
整数の乱数生成機。
シードを指定する。
$[a, b)$ の範囲から一様乱数を生成する。
#pragma once #include <cstdint> #include <random> namespace ebi { struct random_number_generator { random_number_generator(int seed = -1) { if (seed < 0) seed = rnd(); mt.seed(seed); } void set_seed(int seed) { mt.seed(seed); } template <class T> T get(T a, T b) { std::uniform_int_distribution<T> dist(a, b - 1); return dist(mt); } private: std::mt19937_64 mt; std::random_device rnd; }; } // namespace ebi
#line 2 "utility/random_number_generator.hpp" #include <cstdint> #include <random> namespace ebi { struct random_number_generator { random_number_generator(int seed = -1) { if (seed < 0) seed = rnd(); mt.seed(seed); } void set_seed(int seed) { mt.seed(seed); } template <class T> T get(T a, T b) { std::uniform_int_distribution<T> dist(a, b - 1); return dist(mt); } private: std::mt19937_64 mt; std::random_device rnd; }; } // namespace ebi