C++ 如何获得从 1 到 12 的随机值?

标签 c++ random

<分区>

我怎样才能获得从 1 到 12 的 C++ 随机值?

所以我要 3 个、6 个或 11 个?

最佳答案

使用以下公式:

M + rand() / (RAND_MAX / (N - M + 1) + 1), M = 1, N = 12

并阅读此 FAQ .

编辑:关于这个问题的大多数答案都没有考虑到这样一个事实,即糟糕的 PRN 生成器(通常由库函数 rand() 提供)在低位上不是很随机。因此:

rand() % 12 + 1

还不够好。

关于C++ 如何获得从 1 到 12 的随机值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2254498/

相关文章:

c++ - 删除与析构函数的显式调用

haskell - 在 Haskell 中从特定列表中创建随机数

c++ - 如何修复损坏的 OpenCL header

c++ - 一次性对字符串数组进行排序

java - 在 Java 中创建一个随机获取 map 整数的 map

c++ - 来自大量人口的随机样本陷入无限循环

python - np.random.seed() 和 np.random.RandomState() 之间的区别

c++ - Windows API 和字符串连接

c++ - 同时读写时输出不一致

c++ - std::map 如何在没有比较函数的情况下将一对作为键映射到它的值