c語言隨機數函數文件 c語言產生隨機數函數

C語言如何編程產生隨機數

樓主你好!

成都創新互聯公司主營閔行網站建設的網絡公司,主營網站建設方案,手機APP定制開發,閔行h5成都小程序開發搭建,閔行網站營銷推廣歡迎閔行等地區企業咨詢

很高興回答你的問題!

#includestdio.h

#includewindows.h

#includetime.h

#includestdlib.h

int main()

{

int num;

srand((unsigned)time(NULL));

num = rand()%100+1;

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

return 0;

}

上面的是參數一個1到100之間的隨機數的例子!主要用到rand()函數,它能夠隨機參數一個0到unsigned int的最大值之間的一個隨機數,我們可以通過%控制隨機數參數的范圍!在使用rand()需要調用srand()種子器,不然你每次得到都是同一個數!具體用法可以去網上查查!

希望我的回答對你有幫助!

望采納!謝謝!

C語言中取隨機數的函數

1. 基本函數

在C語言中取隨機數所需要的函數是:

 int rand(void); void srand (unsigned int n);

rand()函數和srand()函數被聲明在頭文件stdlib.h中,所以要使用這兩個函數必須包含該頭文件:

 #include stdlib.h

2. 使用方法

rand()函數返回0到RAND_MAX之間的偽隨機數(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等于32767,或者更大。

srand()函數使用自變量n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然后調用rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函數的種子,就可以避免重復的發生。如果,調用rand()之前沒有先調用srand(),就和事先調用srand(1)所產生的結果一樣。

舉個例子,假設我們要取得0~10之間的隨機整數(不含10本身):

 /* 例1:不指定種子的值 */

 for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:1 7 4 0 9 4 8 8 2 4

 /* 例2:指定種子的值為1 */

 srand(1); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:1 7 4 0 9 4 8 8 2 4

  例2的輸出結果與例1是完全一樣的。

 /* 例3:指定種子的值為8 */ srand(8); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:4 0 1 3 5 3 7 7 1 5

  該程序取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次運行程序的結果都相同。

 /* 例4:指定種子值為現在的時間 */ srand((unsigned)time(NULL)); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  該程序每次運行結果都不一樣,因為每次啟動程序的時間都不同。另外需要注意的是,使用time()函數前必須包含頭文件time.h。

 3. 注意事項

求一定范圍內的隨機數。

  如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。

 randnumber = rand() % 10;

  那么,如果取的值不是從0開始呢?你只需要記住一個通用的公式。

  要取[a,b)之間的隨機整數(包括a,但不包括b),使用:

  (rand() % (b - a)) + a

偽隨機浮點數。

  要取得0~1之間的浮點數,可以用:

  rand() / (double)(RAND_MAX)

  如果想取更大范圍的隨機浮點數,比如0~100,可以采用如下方法:

  rand() /((double)(RAND_MAX)/100) 其他情況,以此類推,這里不作詳細說明。

C語言中產生隨機數的函數是什么?

c語言中產生隨機數的相關函數主要包括srand和rand函數,兩者配合生成隨機數據,測試代碼如下,

#includestdio.h

#include stdlib.h

#include time.h

void main()

{

int i=0,j=0;

int p[5][5]={0};

srand(time(NULL));

for(i=0;i5;i++)

for(j=0;j5;j++)

p[i][j]=rand()%100+1;//產生1-100的隨機數存入數組p中

printf("二維數組p為:\n");

for(i=0;i5;i++)

{

for(j=0;j5;j++)

printf("%d\t",p[i][j]);

printf("\n");

}

}

一般srand和rand配合使用產生偽隨機數序列。rand函數在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函數生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過參數seed改變系統提供的種子值,從而可以使得每次調用rand函數生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函數提供不同的種子值,進而產生不同的隨機數序列。

本文標題:c語言隨機數函數文件 c語言產生隨機數函數
當前地址:http://m.kartarina.com/article28/hgjhjp.html

成都網站建設公司_創新互聯,為您提供搜索引擎優化網站設計網站內鏈定制開發云服務器網站建設

廣告

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

h5響應式網站建設
主站蜘蛛池模板: 精品视频无码一区二区三区| 中文无码一区二区不卡αv | 国产成年无码久久久免费| 久久亚洲AV成人无码软件| 直接看的成人无码视频网站| 四虎成人精品无码永久在线| 亚洲国产精品成人精品无码区在线 | 无码人妻精品一区二区三区不卡| 精品一区二区无码AV| 亚洲av无码不卡久久| 精品无码三级在线观看视频| 精品欧洲av无码一区二区三区| 精品无码人妻一区二区三区不卡| 亚洲国产成人无码av在线播放| 一本加勒比HEZYO无码资源网| 日韩精品无码区免费专区 | 亚洲日韩精品A∨片无码 | 国产精品无码国模私拍视频 | 亚洲热妇无码AV在线播放| 亚洲爆乳少妇无码激情| 国产成年无码AV片在线韩国| 成人免费无码大片a毛片软件| 无码人妻一区二区三区免费看 | 亚洲的天堂av无码| 人妻中文无码久热丝袜| 国产成人无码区免费A∨视频网站| 精品亚洲AV无码一区二区| 丰满熟妇人妻Av无码区| 中文无码成人免费视频在线观看| 自慰系列无码专区| 曰韩无码无遮挡A级毛片| 亚洲AV日韩AV永久无码色欲| 精品无码一区二区三区电影 | 人妻少妇精品无码专区二区| 精品久久久久久无码人妻热| 天码av无码一区二区三区四区| 永久免费无码网站在线观看 | 国产精品无码无卡在线观看久| 无码av人妻一区二区三区四区| 亚洲AV无码久久久久网站蜜桃| 麻豆亚洲AV永久无码精品久久|