它的返回值就是求取隨機的值,所以如果沒有對數有要求,直接這樣定:

目前創(chuàng)新互聯公司已為上1000家的企業(yè)提供了網站建設、域名、網絡空間、網站托管、服務器租用、企業(yè)網站設計、曲松網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發(fā)展。
printf("%d", rand());就能輸出一個隨機數.但如果對數有要求,如小數或在一定值以內:
小數:rand()+rand()/100.0 //100.0后面的.0必須寫,100是說明求兩位小數,你可以自己加大.
一定范圍:rand()%10+0 //10是頂和底的差,0是底,就是說求10到20之間的數就是:rand()%10+10
但是調用它必須先調用srand()來生成隨機種子,如果你沒調用它,系統會自動調用.但是srand是有個參數的,種子就是根據這個參數來定的,所以這個參數決定著生成的隨機數.如果你在代碼里寫死了它:srand(10);那這樣rand生成的隨機數就也被定格在了一定量,所以不要這樣用.要這樣寫:
srand(time(NULL));time的返回值是當前系統時間.因為時間不同,所取的數值也就不同.這樣隨機數就真正的隨機了.
time在中聲明
rand,srand在中聲明.
rand函數是根據一個數(我們可以稱它為種子)為基準,以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態(tài)公布,從而相當于產生了隨機數,
但這產生的并不是真意正義上的隨機數,是一個偽隨機數,當計算機正常開機后,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值。
種子相同,產生的隨機序列相同。這樣做的好處是,方便我們產生一組固定的隨機序列,用來調試程序。
C提供了srand()函數,用來設置種子,它的原形是void srand( int a)。
在調用rand函數產生隨機數前,應該先利用srand()設好隨機數種子,如果未設隨機數種子,默認種子為1。
一、首先包含必要的頭文件
#includestdio.h
這個包含用于輸入輸出的函數。
#includestdlib.h
這個包含初始化隨機數種子、產生隨機數的函數。
#includetime.h
這個包含與時間有關的函數,初始化隨機數種子時可以用到。
二、使用如下公式產生在區(qū)間[min,max]之間的隨機數
int r=rand()%(max-min+1)+min;
三、一個例子,產生10個[1,100]的隨機整數
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
const int min=1,max=100;
int i,r;
//用當前時間初始化隨機數種子
srand(time(NULL));
printf("隨機產生的10個1-100的整數是:");
for(i=0;i10;i++)
{
r=rand()%(max-min+1)+min;
printf("%d,",r);
}
return 0;
}
四、運行結果的截圖
截圖1
截圖2
c語言中的rand隨機數函數,是按指定順序來產生的,在生成隨機數之前,在stdlib.h頭文件中,會初始化函數srand,根據隨機種子seed,來獲取隨機數,如果seed不變,每次運行得到的隨機數會是一樣的,因此,rand函數也被大家叫做偽隨機數。下面就來介紹下rand函數的使用
打開代碼編譯器,輸入如下所示的代碼片段
運行該代碼片段,得到10個隨機數,但是我們發(fā)現,不論運行幾次,生成的隨機數都是這10個,也就是說,在種子seed不變的情況下,生成的隨機數是偽隨機數
我們引入頭文件time.h,取時間戳作為seed的取值來源,改代碼片段如下,將srand(1)改成srand(time(NULL))
運行代碼,得到10個隨機數如下,定義非常量的srand參數,可以避免偽隨機數的產生
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
srand((int)time(NULL));
printf("%d\n",rand()%200-100);//是求余不是乘積
return 0;
}
rand函數功能為獲取一個偽隨機數(偽隨機數的概念下面會有介紹)。
一、函數名:
rand();
二、聲明:
int rand();
三、所在頭文件:
stdlib.h
四、功能:
返回一個偽隨機數。之所以說是偽隨機數,是因為在沒有其它操作下,每次執(zhí)行同一個程序,調用rand得到的隨機數序列是固定的(不是真正的“隨機”)。
五、為了使rand的結果更“真”一些,也就是令其返回值更具有隨機性(不確定性),C語言在stdlib.h中還提供了srand函數,通過該函數可以設置一個隨機數種子,一般用當前時間的毫秒數來做參數。通過time(NULL)可以獲取到當前時間的毫秒值(該函數位于time.h)中。
六、使用rand的流程可以總結為:
1 調用srand(time(NULL))設置隨機數種子。
2 調用rand函數獲取一個或一系列隨機數。
需要注意的是,srand只需要在所有rand調用前,被調用一次即可,沒必要調用多次。
七、以下是隨機獲取10個整型值并輸出的例子,輔助理解。
#include?stdio.h
#include?stdlib.h
#include?time.h
int?main()
{
int?i;
srand(time(NULL));//設置隨機數種子。
for(i?=?0;?i??10;?i?++)//運行10次。
printf("%d\n",?rand());//每次獲取一個隨機數并輸出。
return?0;
}
分享文章:c語言rand函數算法,c語言rand函數
當前網址:http://chinadenli.net/article28/dseoijp.html
成都網站建設公司_創(chuàng)新互聯,為您提供App設計、網站制作、網站收錄、服務器托管、網站改版、定制開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯