c语言随机数的产生方法
寫程序時候有時候需要產(chǎn)生一個隨機數(shù),c語言有內建的隨機數(shù)產(chǎn)生函數(shù)rand();
它包含在stdlib庫中
例如
#include<stdlib.h>
int a;
a=rand();
這時,a變量內存的是0到32767(32位操作系統(tǒng))之間的一個隨機數(shù)。
但是雖然每次調用rand(),函數(shù)時值不一樣,他們是一個系列,可是下一次運行程序時候,出來的隨機數(shù)還是這個序列。
這是因為rand()函數(shù)要產(chǎn)生一個隨機數(shù)必須依靠一個種子數(shù),如果沒有約定,種子數(shù)就是1;
這樣每次程序運行產(chǎn)生的第一個隨機數(shù)都一樣,第二個也一樣以后都一樣。
為了解決這個問題,在調用rand()函數(shù)之前先調用一次srand(值)函數(shù);這樣隨著值的不同每次程序運行產(chǎn)生的第n個值也就不同了。為了方便,大部分程序員都用時間來作為值。
例如:
srand(time(NYLL));
這樣種子數(shù)就是隨時間變化的數(shù),rand()函數(shù)隨機出來的數(shù)就不是固定的序列了。
這時產(chǎn)生的隨機數(shù)是0到32767之間的一個數(shù),我們如果需要產(chǎn)生0到x之間的數(shù)可以取余操作例如產(chǎn)生0到10之間的數(shù),可以用:
a=rand()%11;
產(chǎn)生5到10之間的數(shù)
a=5+rand()%(11-5);
產(chǎn)生100到999之間的數(shù)
a=100+rand()%(1000-100);
產(chǎn)生x到y(tǒng)之間的數(shù):
a=x+rand()%(y+1-x);
這樣就可以產(chǎn)生隨機數(shù)了;
總結
以上是生活随笔為你收集整理的c语言随机数的产生方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海康威视 web端开发经验 (二)
- 下一篇: 039医疗项目-模块四:采购单模块—采购