【发布时间】:2020-06-17 07:52:52
【问题描述】:
我想生成介于 -100 到 100 之间的随机数,但是我不确定其中哪些会生成正确的数字
rand()%201 - 100; 或 rand()%200 - 100;
【问题讨论】:
-
首先确定
rand() % 200和rand() % 201可以产生的最大和最小可能值。然后对每个人执行-100,看看你还剩下什么范围。 -
您可能需要考虑更现代的 C++ 随机数工具(使用起来也更容易混淆)
std::uniform_int_distribution。 -
这应该很容易让你自己测试
-
编辑中发生了什么?
-
请不要在 2020 年的新代码中使用
rand()。请使用我们在过去 9 年中可用的新现代 random facilities(自 C ++11)。还;除非 201 均分到生成器的最大输出中,否则您的%201会在结果中引入偏差。