srand((int)time(NULL));設(shè)定隨機數(shù)種子
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比開陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式開陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋開陽地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
rand()%100;產(chǎn)生0-99的隨機數(shù)。
高級點的,假如要產(chǎn)生16-59之間的數(shù),你可以這樣寫:rand()%44+16(這里44由59-16+1得到)。其他情況如法炮制!
C語言中用rand()函數(shù)產(chǎn)生20-90的隨機整數(shù)
20-90共有71個數(shù)字,所以是rand()%71+20 ;
用rand()生成-20-20的隨機數(shù)
-20-20共有41個數(shù)字,所以是rand()%41-20;
需要注意的是,在運行以上代碼之前最好設(shè)定一下:
srand(time(NULL));//用系統(tǒng)當前時間設(shè)置rand()隨機序列種子,保證每次運行隨機序列不一樣
編譯環(huán)境為:vs2013
產(chǎn)生1到3的整型隨機數(shù)的代碼如下:
#includestdio.h
#includetime.h
#includestdlib.h
#define max 3 ? //這個函數(shù)的意義為:隨機生成最大的數(shù)為3
#define min 1 ?? //這個函數(shù)的意義為:隨機生成最小的數(shù)為1
int main()
{
int num;
srand(time(0));
num = rand() % (max - min) + min; ?// 這里的意義,“%”為模運算
printf("隨機數(shù)為:%d\n", num);
system("pause"); ?//這個代碼可以讓彈出的黑框不會一下就消失
return 0;
}
擴展資料:
根據(jù)密碼學(xué)原理,隨機數(shù)的隨機性檢驗可以分為三個標準:
條件一、統(tǒng)計學(xué)偽隨機性。統(tǒng)計學(xué)偽隨機性指的是在給定的隨機比特流樣本中,1的數(shù)量大致等于0的數(shù)量,同理,“10”“01”“00”“11”四者數(shù)量大致相等。類似的標準被稱為統(tǒng)計學(xué)隨機性。滿足這類要求的數(shù)字在人類“一眼看上去”是隨機的。
條件二、密碼學(xué)安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機算法,不能有效的演算出隨機樣本的剩余部分。
條件三、真隨機性。其定義為隨機樣本不可重現(xiàn)。實際上只要給定邊界條件,真隨機數(shù)并不存在,可是如果產(chǎn)生一個真隨機數(shù)樣本的邊界條件十分復(fù)雜且難以捕捉(比如計算機當?shù)氐谋镜纵椛洳▌又担?,可以認為用這個方法演算出來了真隨機數(shù)。
隨機數(shù)分為三類:
①偽隨機數(shù):滿足第一個條件的隨機數(shù)。
②密碼學(xué)安全的偽隨機數(shù):同時滿足前兩個條件的隨機數(shù)??梢酝ㄟ^密碼學(xué)安全偽隨機數(shù)生成器
計算得出。
③真隨機數(shù):同時滿足三個條件的隨機數(shù)。
srand((int)time(NULL));設(shè)定隨機數(shù)種子
例子如下:
直接編譯,程序執(zhí)行結(jié)果如下圖所示:
擴展資料:
隨機數(shù)是專門的隨機試驗的結(jié)果。在統(tǒng)計學(xué)的不同技術(shù)中需要使用隨機數(shù),比如在從統(tǒng)計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。
產(chǎn)生隨機數(shù)有多種不同的方法。這些方法被稱為隨機數(shù)發(fā)生器。隨機數(shù)最重要的特性是:它所產(chǎn)生的后面的那個數(shù)與前面的那個數(shù)毫無關(guān)系。
#include stdlib.h
#include stdio.h
#include time.h
srand()((int)time(NULL));設(shè)定隨機數(shù)種子
rand()()%100;產(chǎn)生0-99的隨機數(shù)。高級點的,假如要產(chǎn)生16-59之間的數(shù),你可以這樣寫:rand()()%44+16(這里44由59-16+1得到)。其他情況如法炮制!
各種編程語言返回的隨機數(shù)(確切地說是偽隨機數(shù))實際上都是根據(jù)遞推公式計算的一組數(shù)值,當序列足夠長,這組數(shù)值近似滿足均勻分布。如果計算偽隨機序列的初始數(shù)值(稱為種子)相同,則計算出來的偽隨機序列就是完全相同的。這個特性被有的軟件利用于加密和解密。加密時,可以用某個種子數(shù)生成一個偽隨機序列并對數(shù)據(jù)進行處理;解密時,再利用種子數(shù)生成一個偽隨機序列并對加密數(shù)據(jù)進行還原。這樣,對于不知道種子數(shù)的人要想解密就需要多費些事了。當然,這種完全相同的序列對于你來說是非常糟糕的。要解決這個問題,需要在每次產(chǎn)生隨機序列前,先指定不同的種子,這樣計算出來的隨機序列就不會完全相同了。你可以在調(diào)用rand()函數(shù)之前調(diào)用srand( (unsigned)time( NULL ) ),這樣以time函數(shù)值(即當前時間)作為種子數(shù),因為兩次調(diào)用rand函數(shù)的時間通常是不同的,這樣就可以保證隨機性了。你也可以使用srand函數(shù)來人為指定種子數(shù)。
參考資料:
#include
stdlib.h
#include
stdio.h
#include
time.h
void
main()
{
int
i,count[100];
for(i=0;i100;i++)
{count[i]=random(100);//設(shè)定
取值范圍
,這表明
隨機數(shù)
是0-100之間取
printf("%d\n",count[i]);
}
}
當前名稱:c語言隨機函數(shù)指定范圍,c語言隨機數(shù)限定范圍
網(wǎng)址分享:http://chinadenli.net/article34/hesgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、App設(shè)計、域名注冊、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司、網(wǎng)站導(dǎo)航
聲明:本網(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)