C++ 隨機(jī)數(shù)的向量

2023-03-20 16:02 更新

第一步是生成大量的隨機(jī)數(shù)并存儲它們在一個(gè)向量中?!按罅俊蔽抑傅氖?0個(gè)。在開始應(yīng)該使用一個(gè)可控范圍的數(shù)值,這將有益于調(diào)試,之后在增加它的規(guī)模。

接下來的函數(shù)將會使用一個(gè)參數(shù),用來表示向量的長度。它用于申請分配一個(gè)新的向量用作存儲int型數(shù)據(jù),并且用0至upperBound-1之間的隨機(jī)數(shù)填充。

apvector randomVector (int n, int upperBound) { apvector vec (n); for (int i = 0; i,這意味著該函數(shù)返回一個(gè)整型數(shù)的向量。為了測試這個(gè)函數(shù),這里有一個(gè)十分方便的函數(shù)用作輸出向量中的內(nèi)容。

void printVector (const apvector<int>& vec) {
     for (int i = 0; i<vec.length(); i++) {
        cout << vec[i] << " ";
    }
}

注意,這是一個(gè)apvector的合法語句參考。實(shí)際上它是十分常見的,因?yàn)樗槐貜?fù)制向量。因?yàn)閜rintVector不需要修改向量,我們聲明為const參數(shù)。

接下來的代碼是生成一個(gè)向量并輸出:

int numValues = 20;
int upperBound = 10;
apvector<int> vector = randomVector (numValues, upperBound);
printVector (vector);

在我的機(jī)器上輸出是:

3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6

這看起來是十足的隨機(jī)。你的輸出結(jié)果可能不同。

如果這些數(shù)字真的是隨機(jī)的,我們其他每一個(gè)數(shù)字出現(xiàn)都是同樣的次數(shù)——每個(gè)兩次。實(shí)際上,數(shù)字6出現(xiàn)了5次,4和8則未曾出現(xiàn)。

這是否意味著平均值不是很均勻?這很難說。只用幾個(gè)數(shù)值,得到我們所期望結(jié)果的是十分渺茫的。隨著數(shù)字的增多,輸出將會更接近我們預(yù)期的。

為了測試這個(gè)理論,我們寫一些程序用作統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的次數(shù),當(dāng)增加到numValues.之后再觀察發(fā)生了什么。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號