#include <iostream>
#include <random>
struct RandNormGen {
std::random_device rd;
std::mt19937 gen;
std::normal_distribution<float> normalDist;
RandNormGen() {
gen = std::mt19937(rd());
normalDist = std::normal_distribution<float>(0, 1);
}
float randFloat(float sigma, float mean = 0) {
float r = normalDist(gen) * sigma + mean;
return r;
}
};
int main()
{
RandNormGen r;
std::cout << r.randFloat(1.0f) << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgoKc3RydWN0IFJhbmROb3JtR2VuIHsKICAgIHN0ZDo6cmFuZG9tX2RldmljZSByZDsKICAgIHN0ZDo6bXQxOTkzNyBnZW47CiAgICBzdGQ6Om5vcm1hbF9kaXN0cmlidXRpb248ZmxvYXQ+IG5vcm1hbERpc3Q7CgogICAgUmFuZE5vcm1HZW4oKSB7CiAgICAgICAgZ2VuID0gc3RkOjptdDE5OTM3KHJkKCkpOwogICAgICAgIG5vcm1hbERpc3QgPSBzdGQ6Om5vcm1hbF9kaXN0cmlidXRpb248ZmxvYXQ+KDAsIDEpOwogICAgfQoKICAgIGZsb2F0IHJhbmRGbG9hdChmbG9hdCBzaWdtYSwgZmxvYXQgbWVhbiA9IDApIHsKICAgICAgICBmbG9hdCByID0gbm9ybWFsRGlzdChnZW4pICogc2lnbWEgKyBtZWFuOwogICAgICAgIHJldHVybiByOwogICAgfQp9OwoKaW50IG1haW4oKSAKewoJUmFuZE5vcm1HZW4gcjsKCXN0ZDo6Y291dCA8PCByLnJhbmRGbG9hdCgxLjBmKSA8PCAiXG4iOwoJcmV0dXJuIDA7Cn0=