W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
大多數(shù)計算機程序在執(zhí)行的時候做著同樣的事情,所以它們被稱作確定性的。通常,確定性是一個好處,我們都期望計算產(chǎn)生相同的結果。例如某些程序,我們卻希望計算機不準確。游戲是一個顯著的例子。
寫一個真的不確定的程序似乎沒那么容易,但是有些許方法至少可以產(chǎn)生看起來比較不確定的結果。其中一個就是生成偽隨機數(shù)來決定程序的輸出。偽隨機數(shù)不是真正數(shù)學意義上的隨機,但我們?yōu)榱诉_到目的,我們必須這么做。
C++提供一個函數(shù)叫做random用于生成隨機數(shù)。它被聲明是stdlib.h頭文件中,這個文件包含了各種各樣的“標準庫”函數(shù),所以取了這個名字。
從random返回是值是一個在0到RAND_MAX之間的整型數(shù),RAND_MAX是一個非常大的數(shù)字(在我的計算機里大約是20億)當然,它也是定義在頭文件中。你每一次調用random時,你都會得到一個不同的隨機生產(chǎn)的數(shù)值??聪旅娴囊粋€例子,運行在一個循環(huán)中:
for (int i = 0; i < 4; i++) {
int x = random ();
cout << x << endl;
}
在我在我的機器上得到以下的輸出:
1804289383
846930886
1681692777
1714636915
你可能會得到一些類似,但在你的計算機上是會得到不同的結果。
當然,我們不希望得到一個巨大的整型數(shù)。更多的情況我們想生成一個從0到我們所規(guī)定的上限值之間的整型數(shù)。一個簡單的方法就是使用求模運算。例如:
int x = random ();
int y = x % upperBound;
y是x對upperBound求模余數(shù),y的值只能是在0到upperBound-1之間,包括兩端的值。記住,y無論怎樣都不會等于upperBound。
它通常也頻繁用作生成隨機浮點數(shù)。一個常見的方法是出于RAND_MAX。例如:
int x = random ();
double y = double(x) / RAND_MAX;
這些代碼將使y的隨機值在0.0到1.0之間,包括兩端的值。作為一個練習,你可能會思考如何生成一個隨機浮點數(shù)在給定的范圍中。例如在100.0到200.0之間。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: