std :: uniform_real_distribution返回值等于上限

时间:2015-12-29 10:24:59

标签: c++ visual-c++ stl

我一直在尝试使用带有0.0f&的std :: uniform_real_distribution生成介于0 - 1(但小于1)之间的随机数。 1.0f作为下限和上限。虽然它偶尔会给我1.0f,但文档表明这不应该发生。我误解了它是如何工作的,还是这可能是一个四舍五入的问题?如果是这样,那么生成严格小于1.0f的随机数的正确方法是什么?

我正在使用Visual Studio 2015。

我的代码:

std::mt19937                                mGenerator( static_cast< unsigned int >( std::chrono::system_clock::now().time_since_epoch().count() ) );
std::uniform_real_distribution< float >     mDistribution( 0.0f, 1.0f );

float result = mDistribution( mGenerator );

感谢。

0 个答案:

没有答案