[英]Generating a random number in C++ including a negative range
我已經找到了很多有關如何在C ++中生成1到10之間的隨機數的文章,但是當包含負數時,我正在努力尋找一種方法。 我正在嘗試獲取在[-1,1)范圍內生成的隨機數,但找不到包含負數的良好示例。
如果您在談論實數,請使用std::uniform_real_distribution
:
std::default_random_engine generator(
std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_real_distribution<double> distribution(-1.0, 1.0);
std::cout << distribution(generator) << std::endl;
確保包括<random>
。 這是一個生動的例子 。
如果您僅限於rand()
,那么這是您可以做的最好的事情:
srand(static_cast<unsigned int>(time(NULL)));
double x = -1. + rand() / (RAND_MAX / 2.);
std::cout << x << std::endl;
確保包括<cstdlib>
或<stdlib.h>
。 這是另一個現場示例 。 但是請注意, <random>
頭文件優於rand()
。 有關更多信息,請參閱此演示文稿以了解為什么rand()被認為有害 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.