c語言產(chǎn)生隨機浮點數(shù)函數(shù) c語言如何產(chǎn)生隨機運算符號

如何用C語言生成之間的隨機浮點數(shù)

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設計制作、成都網(wǎng)站制作與策劃設計,太倉網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設十載,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:太倉等地區(qū)。太倉做網(wǎng)站價格咨詢:18982081108

float a=3.5,b=10.5;

float x=(float)rand()/32767*(b-a)+a;

就可以生成 [a,b) 之間的隨機浮點數(shù)

C語言產(chǎn)生一個固定區(qū)間內(nèi)的浮點型隨機數(shù),怎么辦

rand() 隨機函數(shù)。

srand((unsigned)time(NULL))則使用系統(tǒng)定時/計數(shù)器的值作為隨機種子。每個種子對應一組根據(jù)算法預先生成的隨機數(shù),所以,在相同的平臺環(huán)境下,不同時間產(chǎn)生的隨機數(shù)會是不同的,相應的,若將srand(unsigned)time(NULL)改為srand(TP)(TP為任一常量),則無論何時運行、運行多少次得到的“隨機數(shù)”都會是一組固定的序列,因此srand生成的隨機數(shù)是偽隨機數(shù)。[1]

庫函數(shù)中系統(tǒng)提供了兩個函數(shù)用于產(chǎn)生隨機數(shù):srand()和rand()。 原型為:

函數(shù)一:int rand(void);

返回一個[0,RAND_MAX]間的隨機整數(shù)。

函數(shù)二:void srand(unsigned seed);

參數(shù)seed是rand()的種子,用來初始化rand()的起始值。

但是,要注意的是所謂的“偽隨機數(shù)”指的并不是假的隨機數(shù)。其實絕對的隨機數(shù)只是一種理想狀態(tài)的隨機數(shù),計算機只能生成相對的隨機數(shù)即偽隨機數(shù)。計算機生 成的偽隨機數(shù)既是隨機的又是有規(guī)律的 —— 一部份遵守一定的規(guī)律,一部份則不遵守任何規(guī)律。比如“世上沒有兩片形狀完全相同的樹葉”,這體現(xiàn)到了事物的特性 —— 差異性;但是每種樹的葉子都有近似的形狀,這正是事物的共性 —— 規(guī)律性。從這個角度講,我們就可以接受這樣的事實了:計算機只能產(chǎn)生偽隨機數(shù)而不是絕對的隨機數(shù)。

系統(tǒng)在調(diào)用rand()之前都會自動調(diào)用srand(),如果用戶在rand()之前曾調(diào)用過srand()給參數(shù)seed指定了一個值,那么 rand()就會將seed的值作為產(chǎn)生偽隨機數(shù)的初始值;而如果用戶在rand()前沒有調(diào)用過srand(),那么系統(tǒng)默認將1作為偽隨機數(shù)的初始 值。如果給了一個定值,那么每次rand()產(chǎn)生的隨機數(shù)序列都是一樣的~~

所以為了避免上述情況的發(fā)生我們通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))來 產(chǎn)生種子。如果仍然覺得時間間隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某個合適的整數(shù)。 例如,srand((unsigned)time(NULL)*10)

另外,關于time_t time(0):time_t被定義為長整型,它返回從1970年1月1日零時零分零秒到目前為止所經(jīng)過的時間,單位為秒。

固定區(qū)間[a,b]內(nèi)的浮點型隨機數(shù) :

例子:(a+(b-a)*rand()/(RAND_MAX))

c語言rand怎么隨機產(chǎn)生浮點型數(shù)

#includelt;stdlib.hgt;

#includelt;time.hgt;

#includelt;iostream.hgt;

#define MAX_RANDOM 1000//這個是產(chǎn)生隨機數(shù)的最大值,但是取浮點數(shù),所以要除去的

#define NUM 2500

double random(double a,double b)//這個是產(chǎn)生隨機數(shù)函數(shù),由于庫函數(shù)功能有限,所以要自己封裝一下

{

return(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM+a;

}

void main()

{

double Dran[NUM+(NUM-1)*4];

double ran[(NUM-1)*4];

double a,b;

int k=0;

srand((unsigned)time(NULL));//這個是設定隨機數(shù)的種子數(shù),由于種子數(shù)相同產(chǎn)生的隨機數(shù)相同,所以取時間做種子

coutlt;lt;"***********************************親體**************************"lt;lt;endl;

for(int i=0;ilt;NUM+(NUM-1)*4;i=i+5)//獲得了親體

{

Dranlt;igt;=random(10,20);

coutlt;lt;Dranlt;igt;lt;lt;"";

}

/*

coutlt;lt;"***********************************后代**************************"lt;lt;endl;

//Dran里面是裝的親代和后代一起的,ran里面只是裝的后代

for(i=0;ilt;NUM+(NUM-1)*4-1;i=i+5)

{

a=Dranlt;igt

b=Dran[i+5];

for(int j=1;jlt;=4;j++)

{

Dran[i+j]=random(a,b);

ran[k]=Dran[i+j];

coutlt;lt;ran[k]lt;lt;"";

k++;

}

}

*/

}

(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM+a這個產(chǎn)生浮點數(shù).

擴展資料:

include用法:

#include命令預處理命令的一種,預處理命令可以將別的源代碼內(nèi)容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。

插入頭文件的內(nèi)容

#include命令告訴預處理器將指定頭文件的內(nèi)容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:

1、#includelt;文件名gt;

2、#include"文件名"

如果需要包含標準庫頭文件或者實現(xiàn)版本所提供的頭文件,應該使用第一種格式。如下例所示:

#includelt;math.hgt;//一些數(shù)學函數(shù)的原型,以及相關的類型和宏

如果需要包含針對程序所開發(fā)的源文件,則應該使用第二種格式。

采用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數(shù)原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。

分享文章:c語言產(chǎn)生隨機浮點數(shù)函數(shù) c語言如何產(chǎn)生隨機運算符號
標題URL:http://muchs.cn/article40/ddihcho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)建站公司、網(wǎng)站內(nèi)鏈、移動網(wǎng)站建設ChatGPT、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設