簡體   English   中英

在C ++中生成一個包含負范圍的隨機數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM