相关疑难解决方法(0)

C++ uniform_int_distribution总是在第一次调用时返回min()

在至少一个实施标准库,的第一次调用std::uniform_int_distribution<>不能返回一个随机值,而是分布的最小值.也就是说,给出代码:

default_random_engine engine( any_seed() );
uniform_int_distribution< int > distribution( smaller, larger );
auto x = distribution( engine );
assert( x == smaller );
Run Code Online (Sandbox Code Playgroud)

...... x其实会smaller为任何值any_seed(),smallerlarger.

要在家中玩,您可以尝试在gcc 4.8.1中演示此问题的代码示例.

我相信这是正确的行为?如果它是正确的行为,为什么随机分布会返回这个明显非随机的值?

c++ random gcc

7
推荐指数
1
解决办法
808
查看次数

标签 统计

c++ ×1

gcc ×1

random ×1