在C ++中生成一个范围内均匀分布的随机数

时间:2015-10-08 03:06:55

标签: c++

我知道有类似的问题 但我的设置不同。

  • 必须使用srand()
  • 必须使用random从用户输入中获取种子
  • 仅使用标准库

我不知道是否可以获得均匀分布的随机数,我是否必须使用+--------------+---------+------+-----+---------+----------------+-------+ | id | first_name | last_name | email | zip | phone | type_id | +--------------+---------+------+-----+---------+----------------+-------+ 库?

1 个答案:

答案 0 :(得分:1)

当涉及rand()srand()等遗产函数时,C ++标准大多遵循C标准。

不幸的是,C标准中有 nothing 关于rand()提供统一分发。事实上,它在脚注(我的重点)中指出:

  

无法保证产生的随机序列的质量 ,并且已知一些实现产生具有令人沮丧的非随机低阶位的序列。具有特殊要求的应用应使用已知足以满足其需求的发电机。

如果你想要随机数的特定属性,你真的应该使用<random>中的C ++内容(是的,我知道你似乎已经打了折扣,但你可能需要做出权衡:要么使用它们或不保证具体分发。)