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

2023-03-20 16:02 更新

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

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

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

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

注意,這是一個apvector的合法語句參考。實際上它是十分常見的,因為它不必復(fù)制向量。因為printVector不需要修改向量,我們聲明為const參數(shù)。

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

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

在我的機器上輸出是:

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

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號