ssj*_*878 3 c++ random generator
我这里有一个简单的问题,但不知道如何解决这个问题!我正在尝试创建一个数字生成器,但我只想从1-6中选择一个随机数.没有零!这个问题被标记为dup但不应该是因为这是C++ NOT C:
srand(static_cast<unsigned int>(time(0)));
int dice = rand()%6;
Run Code Online (Sandbox Code Playgroud)
如果C++ 11是一个选项,你也可以选择std::uniform_int_distribution更简单,更不容易出错(参见rand()Considered Harmful presentation and slides):
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 e2(rd());
std::uniform_int_distribution<> dist(1, 6);
for( int i = 0 ; i < 10; ++i )
{
std::cout << dist(e2) << std::endl ;
}
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
之前的帖子为什么人们说使用随机数生成器时存在模偏差?清楚地解释了克里斯在评论中指出的模数偏见.