簡體   English   中英

需要幫助來了解更好的RNG

[英]Need help understanding better RNG

在這篇文章的最后一個示例中( http://www.daniweb.com/software-development/cpp/threads/1769/c-random-numbers ),作者聲稱這是產生隨機數的更好方法。 但是,我讀了這一行,仍然對要做什么感到困惑。

random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0));

我測試了此代碼,但每次都保持產生“ 1”的值。

我希望有人可以提供澄清。

假設您要生成[a, b)范圍內的隨機整數。 這可以通過生成范圍為[0, b - a)隨機整數並添加a

random_integer = a + rand(0, b - a)

我們可以使用普通的rand() [0, RAND_MAX]范圍內的隨機整數。 現在,我們需要縮放此間隔以適合[0, r)r = b - a 由於RAND_MAXrand()返回的最大值,因此rand() / (MAX_RAND + 1.0)[0, 1) 因此, r * rand() / (MAX_RAND + 1.0)[0, r)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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