著作權宣告:本文為CSDN博主「candyliuxj」的原創文章,遵循 CC 4.0 BY-SA 著作權協議,轉載請附上原文出處鏈接及本宣告,
原文鏈接:https://blog.csdn.net/candyliuxj/article/details/4396666
一、rand()和srand()的關系
rand()和srand()要一起使用,其中srand()用來初始化亂數種子,rand()用來產生亂數,
因為默認情況下亂數種子為1,而相同的亂數種子產生的亂數是一樣的,失去了隨機性的意義,所以為使每次得到的亂數不一樣,用函式srand()初始化亂數種子,srand()的引數,用time函式值(即當前時間),因為兩次呼叫rand()函式的時間通常是不同的,這樣就可以保證隨機性了,
二、產生一定范圍亂數的通用表示公式
要取得[a,b)的隨機整數,使用 (rand() % (b-a))+ a (結果值含a不含b),
要取得[a,b]的隨機整數,使用 (rand() % (b-a+1))+ a (結果值含a和b),
要取得(a,b]的隨機整數,使用 (rand() % (b-a))+ a + 1 (結果值不含a含b),
(總的來說,通用公式:a + rand() % n ;其中的a是起始值,n是整數的范圍)
要取得a到b之間的隨機整數,另一種表示 a + (int)b * rand() / (RAND_MAX + 1)
要取得0~1之間的浮點數,可以使用 rand() / double(RAND_MAX)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91730.html
標籤:C++
下一篇:oracle日期的問題
