以下代码生成默认值[0,PI)
之间的数字:
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::default_random_engine re(rd());
//std::uniform_real_distribution<double> unifPhi(0., M_PI);//[0.,PI) // <- default
std::uniform_real_distribution<double> unifPhi{0.0, std::nextafter(M_PI, 2.*M_PI)};//probably [0.,PI]
for(unsigned int i=0u;i<10u;++i)
std::cout << unifPhi(re) << std::endl;
return 0;
}
我想在[0,PI]
之间生成一个数字。要清楚,第二个括号必须是]
,而不是)
(关闭间隔)。
有人可以告诉我上面的代码是否正确吗?