要取得[a,b)的隨機整數,使用(rand() % (b-a))+ a;
要取得[a,b]的隨機整數,使用(rand() % (b-a+1))+ a;
要取得(a,b]的隨機整數,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整數的範圍。
要取得a到b之間的隨機整數,另一種表示:a + (int)b * rand() / (rand_max + 1)。
要取得0~1之間的浮點數,可以使用rand() / double(rand_max)。
示例**:
#include #include #include using namespace std;
template//注意,這裡是返回t型別的(強制型別轉換)
t randt(t _min, t _max)
return rand() / (double)rand_max *(_max - _min) + _min;}
int _tmain(int argc, _tchar* ar**)
結果:
3.73812
1.65761
4.23936
1.36195
3.72506
4.44005
1.88894
3.743
2.63128
1.4566839
2516
8643
C 隨機數筆記
rand 和srand 要一起使用,其中srand 用來初始化隨機數種子,rand 用來產生隨機數。因為預設情況下隨機數種子為1,而相同的隨機數種子產生的隨機數是一樣的,失去了隨機性的意義,所以為使每次得到的隨機數不一樣,用函式srand 初始化隨機數種子。srand 的引數,用time函式值 即當...
c語言生成隨機數筆記
include include include 利用時間來製造偽隨機數 intmain 以下一段話摘自 煙雨迷離半世殤 系統在呼叫rand 之後就自動呼叫srand 如果使用者在rand 之前呼叫srand 給引數seed指定乙個值,那麼rand 就會將seed的值作為產生偽隨機數的初始值,如果使用...
C語言生成隨機數筆記
生成指定範圍內的隨機數字 rand 函式是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說c語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數。使用 rand 生成隨機數之前需要用隨機發生器的初始化函式 srand unsigned seed 進行偽隨機數序列初始化,see...