在c++中生成范围内均匀分布的随机数
Generating uniformly distributed random numbers within a range in C++
我知道有类似的问题。
但我的设置不同。
- 必须使用
rand()
- 必须使用
srand()
从用户输入获取种子 - 仅使用标准库
我不知道是否有可能得到均匀分布的随机数,我是否必须使用random
库?
c++标准在涉及rand()
和srand()
等传统函数时主要遵循C标准。
rand()
提供均匀分布的。事实上,它在脚注中指出(我的重点):
不能保证产生的随机序列的质量并且已知一些实现产生具有令人苦恼的非随机低阶位的序列。有特殊要求的应用应使用已知足以满足其需求的发电机。
如果你想要你的随机数的特定属性,你真的应该使用<random>
中的c++东西(是的,我知道你似乎已经打折了,但你可能不得不做出权衡:要么使用它们,要么不保证特定的分布)。
相关文章:
- C++随机数分布传递给函数
- 在编译时选择随机数分布
- 从提升二项分布中抽取随机数
- 在 c++ 中创建具有指数分布的随机数(可视化标准)
- 用具有不同范围的均匀分布的随机数填充多维矩阵
- 是否有在 c++ 中使用三角分布生成随机数的函数
- 生成C++中的正态分布随机数
- 如何在没有浮点数/双精度数的情况下生成均匀和高斯分布的伪随机数
- 使用推力生成均匀分布的随机数
- 生成属于指数分布的随机数
- C++生成范围内服从正态分布的随机数
- 如何生成指数分布的随机数(带均值)
- 如何在 GCC 5 中为指数分布生成随机数
- 随机数生成器 - 直方图构造(泊松分布和计数变量)
- 随机数的正态分布会挂起程序
- C++11 随机数分布在各个平台上并不一致——有什么替代方案
- C++指数分布模板类生成不精确的随机数
- 指定的随机分布使用哪种类型的随机数引擎
- 如何在vs2010中生成均匀分布随机数
- 均匀分布随机数生成