rand()函數(shù)產(chǎn)生隨機數(shù)的原理···不清楚。但是他是一個#includestdlib.h
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比康平網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式康平網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋康平地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
里的函數(shù)。
他的范圍是0-RAND_MAX....這個值不小于32767(這是ANSI標(biāo)準(zhǔn)規(guī)定的)
提到這個,順便幫樓主提一下。這個是偽隨機數(shù)。
也就是一旦你運行過后,你每次得到的那組隨機數(shù)肯定是一樣的。。
這也就是偽所在。他的單次是隨機(單次不是指單個,是指你單次編譯,也就是你下次再運行這個程序,結(jié)果是一樣的,沒有真正隨機)
一般用于取范圍內(nèi)隨機數(shù)。
rand()%a;
比如取100以內(nèi)的隨機數(shù)
rand()%100;
或者骰子的時候取6
rand()%6.模擬每次得到的點數(shù)··
還有發(fā)牌。多用于賭博模擬中。
這時就引進另一個srand();
有了這個。才能保存rand()每次真正的隨機性能。
一般這個的用法,現(xiàn)在用得比較多的是用電腦的時間 做值
也就是srand(time(NULL);
然后后面你得到的rand()每次運行結(jié)果就不一樣了。
這個要加個頭文件#includetime.h
要還 不清楚就hi我
rand()函數(shù)可以用來產(chǎn)生隨機數(shù),但是這不是真真意義上的隨機數(shù),是一個偽隨機數(shù),是根據(jù)一個數(shù)(我們可以稱它為種子)為基準(zhǔn)以某個遞推公式推算出來的一系數(shù),當(dāng)這系列數(shù)很大的時候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機數(shù),但這不是真正的隨機數(shù),當(dāng)計算機正常開機后,這個種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a) 功能是初始化隨機產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數(shù),我們是可以產(chǎn)生可以預(yù)見的隨機序列,那我們?nèi)绾尾拍墚a(chǎn)生不可預(yù)見的隨機序列呢?我們可能常常需要這樣的隨機序列,利用srand((unsign)(time(NULL))是一種方法。
rand();函數(shù)產(chǎn)生的是偽隨機,如果不用srand();提供種子,那他每次的隨機數(shù)都是一樣;可以這樣設(shè)置種子:srand( (int)time(NULL) );\\用時間來做種子,這樣每次用rand();產(chǎn)生的隨機數(shù)就不一樣了。
rand()是表示產(chǎn)生隨機數(shù)的一種函數(shù),多應(yīng)用于循環(huán)語句當(dāng)中進行判斷。
比如說n=rand();
switch(n)
{case1.......
case2......}
這些都是都可能被執(zhí)行的,因為數(shù)字是隨機的。
擴展資料:
注意
rand()函數(shù)可以用來產(chǎn)生隨機數(shù),但是這不是真真意義上的隨機數(shù),是一個偽隨機數(shù),是根據(jù)一個數(shù),我們可以稱它為種了,為基準(zhǔn)以某個遞推公式推算出來的一系數(shù),
當(dāng)這系列數(shù)很大的時候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機數(shù),但這不是真正的隨機數(shù),當(dāng)計算機正常開機后,這個種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a) ,
功能是初始化隨機產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數(shù),可以產(chǎn)生可以預(yù)見的隨機序列。
參考資料來源:rand函數(shù)-百度百科
rand
和random都是偽隨機函數(shù),一般直接讀取時間來做種子(sand(time))的也是不怎能隨機的
我給你一個我以前寫的,真正的隨機:
int
myrand(void)
{
int
seed
;
asm
("rdtsc"
:
"=A"
(seed))
;
srand((unsigned
int)seed);
return
rand();
}
本文標(biāo)題:c語言sand函數(shù) c語言3%d
瀏覽路徑:http://jinyejixie.com/article12/hpdegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、小程序開發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、移動網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)