从1-6中选取rand()数字
picking rand() number from 1-6
我有一个简单的问题,但不知道如何解决!我正在尝试创建一个数字生成器,但我只想让它从1-6中随机选择一个数字。没有零!这个问题被标记为重复,但不应该是因为这是C++而不是C:
srand(static_cast<unsigned int>(time(0)));
int dice = rand()%6;
rand() % 6
给出一个范围为0..5
的数字。加一得到范围1..6
。
如果C++11是一个选项,那么你也有std::uniform_int_distribution
,它更简单,更不容易出错(请参阅rand()被认为是有害的演示和幻灯片):
#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 ;
}
这个前面的线程为什么人们说在使用随机数生成器时存在模偏差?清楚地解释了chris在评论中指出的模偏。
几乎得到了:
int dice = rand()%6 + 1;
相关文章:
- 如何生成比用户使用 rand() 函数输入的数字大 5-10% 的数字?
- 为什么 rand() 给我的数字超出了我定义的间隔?(昨天工作正常)
- rand() 函数通过升序到前一个数字来生成下一个数字
- RAND()在递归功能中产生的数字高于设定范围
- 为什么rand()给出相对接近的数字
- 如何在使用随机生成器(srand,rand)时检查数字是否不同
- 如何使用RAND()在数组中生成数字
- rand()每次运行程序时都返回相同的数字
- 将 rand() 结果写入 C++ 文本文件,而不重复数字
- 如何直接获取rand()序列中的第n个数字,而不必调用rand(()n次
- 如何调用一个变量(包含rand()函数)并得到不同的数字
- rand() 生成相同的数字
- 为什么我的 rand() 数字显示为 0
- rand()生成器卡在1个数字c++上
- rand()不起作用,给了我一个超出指定的最大值和最小值的数字
- Rand从一个最大值为75的数字(36)开始时是如何工作的
- c++rand()和来自boost的RNG生成相同的数字(在发布模式中),即使srand(0)也是如此
- 为什么使用 rand() 会有更高数字的概率
- Rand() 是相同的数字生成器,即使我调用了 srand(time(NULL))
- 如何在C++中限制rand函数生成的数字