計算機中隨機數(shù)的產(chǎn)生_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、計算機中隨機數(shù)的產(chǎn)生大家可能很多次討論過隨機數(shù)在計算機中怎樣產(chǎn)生的問題,在這篇文章中,我會對這個問題進行更深入的探討,闡述我對這個問題的理解。首先需要聲明的是,計算機不會產(chǎn)生絕對隨機的隨機數(shù),計算機只能產(chǎn)生“偽隨機數(shù)”。其實絕對隨機的隨機數(shù)只是一種理想的隨機數(shù),即使計算機怎樣發(fā)展,它也不會產(chǎn)生一串絕對隨機的隨機數(shù)。計算機只能生成相對的隨機數(shù),即偽隨機數(shù)。偽隨機數(shù)并不是假隨機數(shù),這里的“偽”是有規(guī)律的意思,就是計算機產(chǎn)生的偽隨機數(shù)既是隨機

2、的又是有規(guī)律的。怎樣理解呢?產(chǎn)生的偽隨機數(shù)有時遵守一定的規(guī)律,有時不遵守任何規(guī)律;偽隨機數(shù)有一部分遵守一定的規(guī)律;另一部分不遵守任何規(guī)律。比如“世上沒有兩片形狀完全相同的樹葉”,這正是點到了事物的特性,即隨機性,但是每種樹的葉子都有近似的形狀,這正是事物的共性,即規(guī)律性。從這個角度講,你大概就會接受這樣的事實了:計算機只能產(chǎn)生偽隨機數(shù)而不能產(chǎn)生絕對隨機的隨機數(shù)。那么計算機中隨機數(shù)是怎樣產(chǎn)生的呢?有人可能會說,隨機數(shù)是由“隨機種子”產(chǎn)生的

3、。沒錯,隨機種子是用來產(chǎn)生隨機數(shù)的一個數(shù),在計算機中,這樣的一個“隨機種子”是一個無符號整形數(shù)。那么隨機種子是從哪里獲得的呢?下面看這樣一個C程序:r01.c#includestaticunsignedintR_SEEDunsignedintrom(void)R_SEED=(R_SEED12359)%65536return(R_SEED)voidrom_start(void)inttemp[2]movedata(0x00400x006c

4、FP_SEG(temp)FP_OFF(temp)4)R_SEED=temp[0]TIMER_LOWDW;地址為0040:006CHTIMER_HIGHDW;地址為0040:006EHTIMER_OFTDB;地址為0040:0070H時鐘中斷服務(wù)程序中,每當TIMER_LOW轉(zhuǎn)滿時,此時,記數(shù)器也會轉(zhuǎn)滿,記數(shù)器的值歸零,即TIMER_LOW處的16位二進制歸零,而TIMER_HIGH加一。r01.c中的movedata(0x00400x0

5、06cFP_SEG(temp)FP_OFF(temp)4)正是把TIMER_LOW和TIMER_HIGH兩個16位二進制數(shù)放進temp數(shù)組,再送往R_SEED,從而獲得了“隨機種子”?,F(xiàn)在,可以確定的一點是,隨機種子來自系統(tǒng)時鐘,確切地說,是來自計算機主板上的定時計數(shù)器在內(nèi)存中的記數(shù)值。這樣,我們總結(jié)一下前面的分析,并討論一下這些結(jié)論在程序中的應(yīng)用:1.隨機數(shù)是由隨機種子根據(jù)一定的計算方法計算出來的數(shù)值。所以,只要計算方法一定,隨機種子

6、一定,那么產(chǎn)生的隨機數(shù)就不會變??聪旅孢@個C程序:r02.cpp#include#includeusingnamespacestdintmain()unsignedintseed=5sr(seed)unsignedintr=r()cout編輯者注:可能代碼有缺在相同的平臺環(huán)境下,編譯生成exe后,每次運行它,顯示的隨機數(shù)都是一樣的。這是因為在相同的編譯平臺環(huán)境下,由隨機種子生成隨機數(shù)的計算方法都是一樣的,再加上隨機種子一樣,所以產(chǎn)生的隨

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論