c語言中隨機讀取函數(shù) c語言隨機抽取函數(shù)

關(guān)于c語言取隨機數(shù)的函數(shù)問題

寫的有問題的,

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比玉州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式玉州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋玉州地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

靈活一些就可以實現(xiàn)的:)

n[i]=rand()*3.1416/65535;

改為:

n[i]=(rand()%31417)/10000.0;

rand()%31417取得0~31416的隨機數(shù),

再除以10000.0就得到0到3.1416的隨機數(shù)了(注意是除以10000.0,如果除以10000就變成取整操作了)

C語言中獲得隨機數(shù)的方法

C語言/C++怎樣產(chǎn)生隨機數(shù):這里要用到的是rand()函數(shù), srand()函數(shù),C語言/C++里沒有自帶的random(int number)函數(shù)。

(1) 如果你只要產(chǎn)生隨機數(shù)而不需要設(shè)定范圍的話,你只要用rand()就可以了:rand()會返回一隨機數(shù)值, 范圍在0至RAND_MAX 間。RAND_MAX定義在stdlib.h, 其值為2147483647。

例如:#includestdio.h

#includestdlib.h

void main()

{

for(int i=0;i10;i+)

printf("%d\n",rand());

} (2) 如果你要隨機生成一個在一定范圍的數(shù),你可以在宏定義中定義一個random(int number)函數(shù),然后在main()里面直接調(diào)用random()函數(shù):例如:隨機生成10個0~100的數(shù):

#includestdio.h

#includestdlib.h

#define random(x) (rand()%x)

void main()

{

for(int x=0;x10;x++)

printf("%d\n",random(100));

} (3)但是上面兩個例子所生成的隨機數(shù)都只能是一次性的,如果你第二次運行的時候輸出結(jié)果仍和第一次一樣。這與srand()函數(shù)有關(guān)。srand()用來設(shè)置rand()產(chǎn)生隨機數(shù)時的隨機數(shù)種子。在調(diào)用rand()函數(shù)產(chǎn)生隨機數(shù)前,必須先利用srand()設(shè)好隨機數(shù)種子(seed), 如果未設(shè)隨機數(shù)種子, rand()在調(diào)用時會自動設(shè)隨機數(shù)種子為1。上面的兩個例子就是因為沒有設(shè)置隨機數(shù)種子,每次隨機數(shù)種子都自動設(shè)成相同值1 ,進而導(dǎo)致rand()所產(chǎn)生的隨機數(shù)值都一樣。srand()函數(shù)定義 : void srand (unsigned int seed);

通??梢岳胓eypid()或time(0)的返回值來當做seed

如果你用time(0)的話,要加入頭文件#includetime.h例如:

#includestdio.h

#includestdlib.h

#includetime.h

#define random(x) (rand()%x)

void main()

{ srand((int)time(0));

for(int x=0;x10;x++)

printf("%d\n",random(100));

}這樣兩次運行的結(jié)果就會不一樣了!!

c語言隨機數(shù)函數(shù)是什么?

c語言隨機數(shù)函數(shù)是 rand()

若要輸出1~10之間的隨機數(shù),

可用rand()%10+1。

關(guān)于C語言隨機函數(shù)

把 srand( time(0) ); 放在循環(huán)外每次產(chǎn)生隨機數(shù)的種子也是一樣的啊,為什么產(chǎn)生的隨機數(shù)就不一樣了?

因為隨機函數(shù)只需要一個種子就能產(chǎn)生一系列的隨機數(shù),并不是每個隨機數(shù)都需要一個種子。

你把 srand(time(0)) 放到循環(huán)前面就可以了。

原因: time(0)返回的是系統(tǒng)的時間(從1970.1.1午夜算起),單位:秒,而那個循環(huán)運行起來耗時連0.000001秒都不到! 也就是說,srand(time(0)) 連著4次的種子是一樣的,種子一樣,生產(chǎn)的隨機數(shù)當然是一樣了。

如果你在把srand()放循環(huán)里面,在中間加個sleep函數(shù),消耗一點時間(間隔大于1秒),那么生成的rand 就不一樣了.但是這樣做很不好,連著兩次用srand生成的種子,間隔一樣,生產(chǎn)的隨機數(shù)間隔有會有規(guī)律性。

另:因為兩次運行同一程序的時間肯定是不一樣的,所以把srand放在循環(huán)前面可以得不同的種子,這樣才能得到你想要的。

本文標題:c語言中隨機讀取函數(shù) c語言隨機抽取函數(shù)
轉(zhuǎn)載來于:http://muchs.cn/article12/hhshdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、電子商務(wù)、網(wǎng)站排名、面包屑導(dǎo)航、網(wǎng)站設(shè)計、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)