C++中-1和1之间的随机数生成器
Random number generator between -1 and 1 in C++
标题几乎说明了一切。我在网上找过,但找不到任何关于这种语言的内容。我看到了以下内容:((double) rand() / (RAND_MAX))
没有运气。我还想避免使用外部图书馆的。
当我计算X,Y坐标时,这个值应该是一个浮点值。
如果您使用的是C++11,则可以使用随机标头。您需要创建一个生成器,然后在此生成器上定义一个分布,然后您可以使用生成器和分布来获得结果。你需要包括随机
#include <random>
然后定义生成器和您的分发
std::default_random_engine generator;
std::uniform_real_distribution<double> distribution(-1,1); //doubles from -1 to 1
然后你可以得到这样的随机数
double random_number = distribution(generator);
如果您需要更多信息,请点击此处http://www.cplusplus.com/reference/random/
可能是((double) rand() / (RAND_MAX)) * 2 - 1
。
rand()
,因为它不是随机的,只是伪随机的!
unsigned int rand_interval(unsigned int min, unsigned int max)
{
int r;
const unsigned int range = 1 + max - min;
const unsigned int buckets = RAND_MAX / range;
const unsigned int limit = buckets * range;
/* Create equal size buckets all in a row, then fire randomly towards
* the buckets until you land in one of them. All buckets are equally
* likely. If you land off the end of the line of buckets, try again. */
do
{
r = rand();
} while (r >= limit);
return min + (r / buckets);
}
这是一个功能齐全的代码。(别忘了用srand()
为主种子rand!
注意>我不能相信它,因为我也在网上看到过它,我自己也用了一段时间了。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 制作具有平均值的随机数生成器
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 尝试在 c++ 中创建随机数生成器并收到错误
- 存储并重新加载随机数生成器状态
- 作为随机数生成器的争用条件
- 播种随机数生成器以使用分叉的好方法是什么?
- 随机数生成器的性能因平台而异
- 随机数生成器的种子和状态有什么区别?
- RcppShark 随机森林示例引发有关随机数生成器的异常
- C++多个实例的随机数生成器组种子中增强
- C++随机数生成器仅生成 0 - C++ 11
- GSL+OMP:C++中的线程安全随机数生成器
- 贪吃蛇游戏 - 食物瓷砖的随机数生成器
- 随机数生成器在 C++ 用于 skipList.
- RSA 加密和解密期间的随机数生成器要求
- 如何使用 cpp 设置随机数生成器的语法?
- 对伪随机数生成器的相同调用之间的不同行为
- C++中-1和1之间的随机数生成器
- 我试图在c++中生成5到8之间的随机数生成器