c語(yǔ)言隨機(jī)數(shù)服從函數(shù) 隨機(jī)函數(shù) c語(yǔ)言

C語(yǔ)言中產(chǎn)生隨機(jī)數(shù)的函數(shù)是什么?

c語(yǔ)言中產(chǎn)生隨機(jī)數(shù)的相關(guān)函數(shù)主要包括srand和rand函數(shù),兩者配合生成隨機(jī)數(shù)據(jù),測(cè)試代碼如下,

創(chuàng)新互聯(lián)是專業(yè)的延平網(wǎng)站建設(shè)公司,延平接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行延平網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

#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;//產(chǎn)生1-100的隨機(jī)數(shù)存入數(shù)組p中

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

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

{

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

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

printf("\n");

}

}

一般srand和rand配合使用產(chǎn)生偽隨機(jī)數(shù)序列。rand函數(shù)在產(chǎn)生隨機(jī)數(shù)前,需要系統(tǒng)提供的生成偽隨機(jī)數(shù)序列的種子,rand根據(jù)這個(gè)種子的值產(chǎn)生一系列隨機(jī)數(shù)。如果系統(tǒng)提供的種子沒(méi)有變化,每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列都是一樣的。srand(unsigned seed)通過(guò)參數(shù)seed改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用rand函數(shù)生成的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。通??梢岳孟到y(tǒng)時(shí)間來(lái)改變系統(tǒng)的種子值,即srand(time(NULL)),可以為rand函數(shù)提供不同的種子值,進(jìn)而產(chǎn)生不同的隨機(jī)數(shù)序列。

c語(yǔ)言隨機(jī)數(shù)函數(shù)是什么?

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ù)都是相同的,可以通過(guò)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ù)

如何用C語(yǔ)言得到服從平均分布的多個(gè)隨機(jī)數(shù)?

把時(shí)間作為隨機(jī)種子,基本可以認(rèn)為是平均而且無(wú)規(guī)律的隨機(jī)。

srand((unsigned)

time(NULL));

rand()產(chǎn)生0-RAND_MAX之間的整數(shù),RAND_MAX是個(gè)常數(shù),忘了,好像是7FFF,可以printf試一下。

random(N)產(chǎn)生0-N之間的整數(shù)

以上需要strlib.h

time.h

stdio.h

高手進(jìn),c語(yǔ)言中如何得到服從正態(tài)分布的隨機(jī)數(shù)?

用boost的random庫(kù)方便生成,以下是2個(gè)測(cè)試,分別生成50個(gè)數(shù):

// μ = 30, δ^2 = 4

30.84 30.00 26.61 27.49 31.27

29.74 27.99 29.81 29.73 33.29

32.17 31.37 26.83 28.20 27.99

28.69 34.66 25.44 29.22 24.84

29.39 32.02 32.35 28.28 34.16

27.04 32.02 33.40 31.39 29.08

31.91 29.19 29.14 32.25 27.20

32.16 29.06 27.67 29.26 29.51

28.36 28.65 26.87 27.74 26.56

30.16 31.18 30.57 30.57 33.43

// μ = 30, δ^2 = 100

84.66 61.85 24.17 68.63 2.15

1.30 40.92 72.74 74.83 4.25

39.86 27.06 60.94 50.58 79.35

51.83 86.03 74.75 92.33 70.59

93.43 55.51 57.22 70.48 70.52

1.45 22.55 40.85 33.23 65.39

35.54 89.69 45.87 88.35 40.73

67.31 17.64 23.98 98.43 35.93

97.88 48.95 59.54 13.14 45.79

5.55 8.77 70.31 14.83 82.54

#include iostream

#include boost/random.hpp

using namespace std;

typedef boost::minstd_rand GenType;

typedef boost::normal_distribution NormalDis;

typedef boost::variate_generatorGenType, NormalDis RNG;

void Show(RNG rng)

{

cout.setf(ios_base::fixed);

cout.precision(2);

for(int i = 0; i 50;)

{

double temp = rng();

if(temp = 1 temp = 100)

{

cout temp ' ';

if(++i % 5 == 0)

cout '\n';

}

else

continue;

}

cout endl;

}

int main()

{

GenType gt;

NormalDis dis(30, 2); // μ = 30, δ^2 = 4

RNG rng(gt, dis);

Show(rng);

rng.distribution() = NormalDis(30, 100); // μ = 30, δ^2 = 10000

Show(rng);

}

C語(yǔ)言隨機(jī)數(shù)及函數(shù)調(diào)用

你在函數(shù)里面生成的隨機(jī)數(shù)種子,而計(jì)算機(jī)運(yùn)行速度又很快,時(shí)間幾乎沒(méi)差別,種子完全一樣,生成的隨機(jī)數(shù)當(dāng)然一樣。

改成下面樣子就OK了:

void main()

{

int i1,i2,i3,i;

srand (time(NULL));//加到這個(gè)位置

i2=suiji();

printf("%d",i2);

i1=suiji();

printf("%d",i1);

}

int suiji()

{

int a;

int t=1,d=18;

//srand (time(NULL));

a=rand()%(d-t)+t;

return a;

}

關(guān)于C語(yǔ)言編程中隨機(jī)數(shù)函數(shù)的使用問(wèn)題

rnd是vb中的隨機(jī)函數(shù),應(yīng)該用rand();

函數(shù)說(shuō)明

rand()會(huì)返回一隨機(jī)數(shù)值,范圍在0至RAND_MAX

間。在調(diào)用此函數(shù)產(chǎn)生隨機(jī)數(shù)前,必須先利用srand()設(shè)好隨機(jī)數(shù)種子,如果未設(shè)隨機(jī)數(shù)種子,rand()在調(diào)用時(shí)會(huì)自動(dòng)設(shè)隨機(jī)數(shù)種子為1。關(guān)于隨機(jī)數(shù)種子請(qǐng)參考srand()。

srand((int)time(0));

是產(chǎn)生的隨機(jī)數(shù)每次不一樣。

#includetime.h

#includestdlib.h

main()

{

int

i,j;

srand((int)time(0));

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

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf("

%d

",j);

}

}

執(zhí)行

5

8

8

8

10

2

10

6

9

9

2

9

7

4

10

3

2

10

8

7

當(dāng)前標(biāo)題:c語(yǔ)言隨機(jī)數(shù)服從函數(shù) 隨機(jī)函數(shù) c語(yǔ)言
本文來(lái)源:http://muchs.cn/article26/hjdpcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、云服務(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)

網(wǎng)站托管運(yùn)營(yíng)