This documentation is automatically generated by online-judge-tools/verification-helper
#include "util/randomnumbergenerator.hpp"
乱数生成器.
$O(1)$
RandomNumberGenerator rng
: 乱数生成器を準備.rng(b)
: $[0, b)$から乱数生成.rng(a, b)
: $[a, b)$から乱数生成./**
* @brief 乱数生成器
* @docs docs/util/randomnumbergenerator.md
*/
struct RandomNumberGenerator {
mt19937 mt;
RandomNumberGenerator()
: mt(chrono::steady_clock::now().time_since_epoch().count()) {}
int operator()(int a, int b) { // [a, b)
uniform_int_distribution<int> dist(a, b - 1);
return dist(mt);
}
int operator()(int b) { // [0, b)
return (*this)(0, b);
}
};
#line 1 "util/randomnumbergenerator.hpp"
/**
* @brief 乱数生成器
* @docs docs/util/randomnumbergenerator.md
*/
struct RandomNumberGenerator {
mt19937 mt;
RandomNumberGenerator()
: mt(chrono::steady_clock::now().time_since_epoch().count()) {}
int operator()(int a, int b) { // [a, b)
uniform_int_distribution<int> dist(a, b - 1);
return dist(mt);
}
int operator()(int b) { // [0, b)
return (*this)(0, b);
}
};