random,C語(yǔ)言里意為隨機(jī)數(shù)發(fā)生器。用法:
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有香格里拉免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
int random(int num);
例子:
#include stdlib.h
int main(void);
{
randomize();
printf("number:%d\n",random(100));/*意為取0~99之間的數(shù)字并輸出*/
return 0;
}
C語(yǔ)言隨機(jī)函數(shù)主要用于實(shí)現(xiàn)一組隨機(jī)數(shù)的生成。
代碼示例如下:
#includestdio.h
#includestdlib.h
int main ()
{
int a;
a=rand()%4;
printf("%d\n",a);
return 0;
}
C預(yù)先生成一組隨機(jī)數(shù),每次調(diào)用隨機(jī)函數(shù)時(shí)從指針?biāo)赶虻奈恢瞄_始取值,因此使用rand()重復(fù)運(yùn)行程序產(chǎn)生的隨機(jī)數(shù)都是相同的,可以通過srand()函數(shù)來(lái)改變指針位置。
擴(kuò)展資料:
C語(yǔ)言隨機(jī)函數(shù)指針位置
void srand( unsigned int seed )
改變隨機(jī)數(shù)表的指針位置(用seed變量控制)。一般配合time(NULL)使用,因?yàn)闀r(shí)間每時(shí)每刻都在改變,產(chǎn)生的seed值都不同。
基于毫秒級(jí)隨機(jī)數(shù)產(chǎn)生方法:
#includewindows.h
種子設(shè)為:srand(unsigned int seed);
srand(GetTickCount());
參考資料:百度百科-C語(yǔ)言隨機(jī)函數(shù)
函數(shù)名: rand
功 能: 隨機(jī)數(shù)發(fā)生器
用 法: void rand(void);
程序例:
#include stdlib.h
#include stdio.h
int main(void)
{
int i;
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i10; i++)
printf("%d\n", rand() % 100);
return 0;
}
這樣產(chǎn)生的隨機(jī)數(shù)為偽隨機(jī)數(shù),如果要產(chǎn)生隨機(jī)數(shù),可以在前面加一個(gè)隨機(jī)種子,srand(time(0)); time(0)返回的是系統(tǒng)的時(shí)間(從1970.1.1午夜算起)的總秒數(shù),單位:秒
#include stdlib.h
#include stdio.h
#include time.h
int main(void)
{
srand(time(0));
int i;
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i10; i++)
printf("%d\n", rand() % 100);這樣就產(chǎn)生了0到99的隨機(jī)數(shù)(隨機(jī)數(shù)對(duì)100取余的結(jié)果)
return 0;
}
可以自己試試,沒加隨機(jī)種子時(shí)候,rand()%100每次產(chǎn)生的數(shù)都是一樣的,而加了srand(time(0))效果就不同了。
通過敲代碼實(shí)驗(yàn),并且參考以下網(wǎng)址
rand()函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),是根據(jù)一個(gè)數(shù),我們可以稱它為種了,為基準(zhǔn)以某個(gè)遞推公式推算出來(lái)的一系數(shù),當(dāng)這系列數(shù)很大的時(shí)候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機(jī)數(shù),但這不是真正的隨機(jī)數(shù),當(dāng)計(jì)算機(jī)正常開機(jī)后,這個(gè)種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個(gè)種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a).
初始化隨機(jī)產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數(shù),我們是可以產(chǎn)生可以預(yù)見的隨機(jī)序列,那我們?nèi)绾尾拍墚a(chǎn)生不可預(yù)見的隨機(jī)序列呢?我們可能常常需要這樣的隨機(jī)序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因?yàn)槊恳淮芜\(yùn)行程序的時(shí)間是不同的.
下面講一講在C語(yǔ)言里所提供的隨機(jī)數(shù)發(fā)生器的用法。現(xiàn)在的C編譯器都提供了一個(gè)基于ANSI標(biāo)準(zhǔn)的偽隨機(jī)數(shù)發(fā)生器函數(shù),用來(lái)生成隨機(jī)數(shù)。它們就是rand()和srand()函數(shù)。這二個(gè)函數(shù)的工作過程如下:
1) 首先給srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,其取值范圍從0~65535;
2) 然后調(diào)用rand(),它會(huì)根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù)(在0到32767之間)
3) 根據(jù)需要多次調(diào)用rand(),從而不間斷地得到新的隨機(jī)數(shù);
4) 無(wú)論什么時(shí)候,都可以給srand()提供一個(gè)新的種子,從而進(jìn)一步“隨機(jī)化”rand()的輸出結(jié)果。
以下是一個(gè)產(chǎn)生隨機(jī)數(shù)的例子:
需要首先使用隨機(jī)數(shù)“種子”初始化,srand函數(shù):
#i?nclude?stdlib.h
#i?nclude?stdio.h
#i?nclude?time.h//使用當(dāng)前時(shí)鐘做種子
void?main(?void?)
{
int?i;
srand(?(unsigned)time(?NULL?)?);//初始化隨機(jī)數(shù)
/*?打印10個(gè)隨機(jī)數(shù).?*/
for(?i?=?0;?i??10;i++?)
printf(?"?%d\n",?rand()?);
}
#include?stdlib.h
#include?time.h
main
{
int?i;
srand(time(0));?//初始化隨機(jī)種子
i?=?rand();?//產(chǎn)生隨機(jī)數(shù)
}
首先,加一個(gè)"#includestdlib.h
然后設(shè)一個(gè)變量,如j,j=rand(),就可以給j賦一個(gè)1~32767的隨機(jī)數(shù),如果要獲得一個(gè)隨機(jī)函數(shù)的十位(其它類似),只需令j=j%10就行.
添加頭文件 #includetime.h
然后在文件中添加 srand((unsigned)time(NULL));
srand()是用來(lái)初始化隨機(jī)種子數(shù)的,因?yàn)閞and的內(nèi)部實(shí)現(xiàn)是用線性同余法做的,它不是真的隨機(jī)數(shù),只不過是因?yàn)槠渲芷谔貏e長(zhǎng),所以有一定的范圍里可看成是隨機(jī)的.
上面是有個(gè)隨機(jī)種子的說明及方法,為了避免重復(fù).然后再 用 隨機(jī)函數(shù),rand() 就行了.
頭文件是 stdlib.h
random() 產(chǎn)生隨機(jī)數(shù)為 0或1
random(n) 產(chǎn)生隨機(jī)數(shù)為 0到n之間的一個(gè)隨機(jī)數(shù)
rand() 產(chǎn)生 0到32768之間的一個(gè)隨機(jī)數(shù)
函數(shù)名: randomize
功 ?能: 初始化隨機(jī)數(shù)發(fā)生器
用 ?法: void randomize(void);
程序例:
#include?stdlib.h
#include?stdio.h
#include?time.h
int?main(void)
{
int?i;
randomize();
printf("Ten?random?numbers?from?0?to?99\n\n");
for(i=0;?i10;?i++)
printf("%d\n",?rand()?%?100);
return?0;
}
新聞標(biāo)題:c語(yǔ)言隨機(jī)發(fā)生器函數(shù) c語(yǔ)言隨機(jī)函數(shù)生成
文章URL:http://jinyejixie.com/article42/dddpjhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、小程序開發(fā)、Google、服務(wù)器托管、微信公眾號(hào)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容