c語言裡函數rand()和srand()的用法

來源:互聯網
上載者:User

 

c語言裡函數rand()和srand()的用法

                                      

rand(void)用於產生一個偽隨機unsigned int 整數。

srand(seed)用於給rand()函數設定種子。

srand 和 rand 應該組和使用。一般來說,srand 是對 rand 進行設定。

比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;

是產生 0 到 100 之間的隨機數。

 

srand()是用來初始化隨機種子數的,因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其周期特別長,所以有一定的範圍裡可看成是隨機的,式子如下:

rand = rand*const_1 + c_var;

srand函數就是給它的第一個rand值。

 

用"int x = rand() % 100;"來產生 0 到 100 之間的隨機數這種方法是不或取的,

比較好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))   產生一個0到n之間的隨機數

範例 
/* 產生介於1 到10 間的隨機數值,此範例與執行結果可與rand()參照*/ 
#include<time.h><br />#include<stdlib.h><br />main()<br />{<br /> int i,j;<br /> srand((int)time(0));<br /> for(i=0;i<10;i++)<br /> {<br /> j=1+(int)(10.0*rand()/(RAND_MAX+1.0));<br /> printf(" %d ",j);<br /> }<br />}  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.