C 隨機數筆記

2021-10-07 11:51:54 字數 775 閱讀 4599

要取得[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...