c語言中 srand(time(NULL)); 的意思是:使用當前時間進行隨機數(shù)發(fā)生器的初始化。
創(chuàng)新互聯(lián)公司專注于岳池網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供岳池營銷型網站建設,岳池網站制作、岳池網頁設計、岳池網站官網定制、微信小程序開發(fā)服務,打造岳池網絡公司原創(chuàng)品牌,更為您提供岳池網站排名全網營銷落地服務。
time_t time(time_t *t); 是C標準庫函數(shù),如果t是空指針(NULL),直接返回當前時間。如果t不是空指針,返回當前時間的同時,將返回值賦予t指向的內存空間。time() 是指返回自 Unix 紀元起的當前時間的秒數(shù)的函數(shù),主要用來獲取當前的系統(tǒng)時間,返回的結果是一個time_t類型。
srand函數(shù)是隨機數(shù)發(fā)生器的初始化函數(shù)。原型:void srand(unsigned int seed); srand和rand()配合使用產生偽隨機數(shù)序列。
擴展資料:
srand函數(shù)的相關信息:
1、語法:void srand (unsigned seed);
2、參數(shù)說明:unsigned seed:隨機數(shù)產生器的初始值(種子值)。
3、功能說明:srand設置產生一系列偽隨機數(shù)發(fā)生器的起始點,要想把發(fā)生器重新初始化,可用1作seed值。任何共它的值都把發(fā)生器匿成一個隨機的起始點。rand檢索生成的偽隨機數(shù)。在任何調用srand之前調用rand與以1作為seed調用srand產生相同的序列。
此函數(shù)可以設定rand函數(shù)所用的隨機數(shù)產生演算法的種子值。任何大于一的種子值都會將rand隨機數(shù)所產生的虛擬隨機數(shù)序列重新設定一個起始點。
4、包含文件:stdlib. h
5、返回值:無
參考資料來源:百度百科-time()
參考資料來源:百度百科-srand
srand()函數(shù)用來設置算法的種子,time(NULL)返回當前的時間,先調用srand(time(NULL))是把當前的時間作為種子,是程序每次運行產生不同的隨機數(shù)序列。
涉及到三個概念:
1、隨機數(shù):數(shù)學上產生的都是偽隨機數(shù),真正的隨機數(shù)使用物理方法產生的。
2、隨機數(shù)種子:隨機數(shù)的產生是由算術規(guī)則產生的,srand(seed)的隨機數(shù)種子不同,rand()的隨機數(shù)值就不同,倘若每次的隨機數(shù)種子一樣,則rand()的值就一樣。所以要產生隨機數(shù),則srand(seed)的隨機數(shù)種子必須也要隨機的。
3、用srand()產生隨機數(shù)種子
原型:void srand ( unsigned int seed )。作用是設置好隨機數(shù)種子,為了讓隨機數(shù)種子是隨機的,通常用time(NULL)的值來當seed。
擴展資料:
C語言其他產生隨機數(shù)的方法。
1、函數(shù)名: rand
功能: 隨機數(shù)發(fā)生器
用法: void rand(void);
程序例:
2、函數(shù)名: random
功能: 隨機數(shù)發(fā)生器
用法: int random(int num);
程序例:
3、函數(shù)名: randomize
功能: 初始化隨機數(shù)發(fā)生器
用法: void randomize(void);
程序例:
參考資料來源:百度百科--srand
在c語言里面,兩個函數(shù)包含在頭文件里面,c++里面,標準庫(被包含于中). srand函數(shù)是隨機數(shù)發(fā)生器的初始化函數(shù)。 原型:void srand(unsigned seed); rand函數(shù)用來產生隨機數(shù),當然是偽隨機數(shù)。
srand()函數(shù)是C語言中產生隨機數(shù)的一個函數(shù)。
函數(shù)原型: void srand(unsigned seed)
功 ? ? ?能: 產生隨機數(shù)的起始發(fā)生數(shù)據,和rand函數(shù)配合使用
頭 文 ?件: stdlib.h ? time.h
舉例如下:
#include?stdio.h
#include?stdlib.h
#include?time.h
int?main(void)
{
int?i;
time_t?t;
srand((unsigned)?time(t));
printf("Ten?random?numbers?from?0?to?99\n\n");
for?(i=0;?i10;?i++)
printf("%d\n",?rand()%100);
return?0;
}
運行程序,會發(fā)現(xiàn)每次產生的隨機數(shù)都不一樣。這是因為這里采用了時間作為種子,而時間在每時每刻都不相同,所以就產生了"隨機"的隨機數(shù)了。所以,要想產生不同的隨機數(shù),在使用rand之前需要先調用srand。
呵呵,這個是我遇到過的問題,并進行了一些研究。其實這是因為srand()函數(shù)是一個隨機數(shù)產生函數(shù),其意思就是指c語言里的隨機數(shù)都是由它來控制產生的!!!如果在應用srand()函數(shù)之前就用隨機函數(shù)rand(),則相當于使用了srand(1);
而將srand((unsigned)time(null));這條語句放在了for循環(huán)里,即是用了srand((unsigned)time(0));故此句語句不變的話,產生的隨機數(shù)就不變!!!不懂的話可以問我!
標題名稱:srand隨機函數(shù)c語言,c語言srand函數(shù)怎么用
標題網址:http://vcdvsql.cn/article18/dsieogp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、定制網站、關鍵詞優(yōu)化、網站營銷、服務器托管、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)