#include <iostream>
#include <random>
#include <chrono>
class Test{
public:
Test(std::mt19937& rng): m_rng(rng){
}
std::mt19937& m_rng;
double randomNumber(double min, double max){
std::uniform_real_distribution<double> uniformDistribution(min, max);
return uniformDistribution(m_rng);
}
};
int main() {
std::mt19937 rng{std::chrono::high_resolution_clock::now().time_since_epoch().count()};
Test a(rng);
Test b(rng);
for(int i=0; i<10; ++i){
std::cout<< "a: " << a.randomNumber(0.0,1.0) << "b: " << b.randomNumber(5.0,6.0) << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8Y2hyb25vPgpjbGFzcyBUZXN0ewpwdWJsaWM6CiAgICBUZXN0KHN0ZDo6bXQxOTkzNyYgcm5nKTogbV9ybmcocm5nKXsKICAgIH0KCiAgICBzdGQ6Om10MTk5MzcmIG1fcm5nOwogICAgZG91YmxlIHJhbmRvbU51bWJlcihkb3VibGUgbWluLCBkb3VibGUgbWF4KXsKICAgICAgICBzdGQ6OnVuaWZvcm1fcmVhbF9kaXN0cmlidXRpb248ZG91YmxlPiB1bmlmb3JtRGlzdHJpYnV0aW9uKG1pbiwgbWF4KTsKICAgICAgICByZXR1cm4gdW5pZm9ybURpc3RyaWJ1dGlvbihtX3JuZyk7CiAgICB9Cgp9OwoKaW50IG1haW4oKSB7CglzdGQ6Om10MTk5Mzcgcm5ne3N0ZDo6Y2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpfTsKCVRlc3QgYShybmcpOwoJVGVzdCBiKHJuZyk7Cglmb3IoaW50IGk9MDsgaTwxMDsgKytpKXsKCQlzdGQ6OmNvdXQ8PCAiYTogIiA8PCBhLnJhbmRvbU51bWJlcigwLjAsMS4wKSA8PCAiYjogIiA8PCBiLnJhbmRvbU51bWJlcig1LjAsNi4wKSA8PCBzdGQ6OmVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==