C/C++中rand()函数产生随机数的用法
一、rand()
1、rand()不需要參數,它會返回一個從0到最大隨機數的任意整數,最大隨機數的大小通常是固定的一個大整數。即,rand()會返回一個范圍在0到RAND_MAX(32767)之間的偽隨機數(整數)。
2、rand()函數需要的頭文件是:“stdlib.h”
rand()函數原型:int rand (void);
使用rand()函數產生0-99以內的隨機整數:int number = rand() % 100;
3、在調用rand()函數之前,可以使用srand()函數設置隨機數種子,如果沒有設置隨機數種子,rand()函數在調用時,自動設計隨機數種子為1。隨機種子相同,每次產生的隨機數也會相同。
如下: 產生介于 1 到 10 間的隨機數值,此范例未設隨機數種子
二、srand()
1、srand()函數需要的頭文件仍然是:”stdlib.h”
srand()函數原型:void srand (usigned int seed);
2、通常rand()產生的隨機數在每次運行的時候都是與上一次相同的,這樣是為了便于程序的調試。若要產生每次不同的隨機數,則可以使用srand( seed )函數進行產生隨機化種子,隨著seed的不同,就能夠產生不同的隨機數。
3、還可以包含”time.h”頭文件,然后使用srand(time(0))來使用當前時間使隨機數發生器隨機化,這樣就可以保證每兩次運行時可以得到不同的隨機數序列,同時這要求程序的兩次運行的間隔超過1秒。
如下:產生介于 1 到 10 間的隨機數值,此范例與執行結果可與 rand()進行對比
三、產生指定范圍內的隨機整數的方法
1、采用“模除+加法”的方法
總的來說,可以表示為:int num = rand() % n +a;
其中的a是起始值,n-1+a是終止值,n是整數的范圍。
2、如果要產生1~100,則是這樣:int num = rand() % 100 + 1;
3、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之間的一個隨機整數。
(由于rand() % (b-a+1) 表示0~b-a之間的整數)
4、若要產生0~1之間的小數,則可以先取得0~10的整數,然后均除以10即可得到“隨機到十分位”的10個隨機小數。
若要得到“隨機到百分位”的隨機小數,則需要先得到0~100的10個整數,然后均除以100,其它情況依 此類推。
總結
以上是生活随笔為你收集整理的C/C++中rand()函数产生随机数的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 95511怎样快速转到人工台,拨打热线按
- 下一篇: C/C++拾遗(二)