c++隨機數(shù)產(chǎn)生器_第1頁
已閱讀1頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、隨機數(shù)產(chǎn)生器隨機數(shù)產(chǎn)生器在標(biāo)準(zhǔn)庫中,提供了r函數(shù)(函數(shù)原型見),用來產(chǎn)生0到R_MAX之間的整數(shù)(這是頭文件中定義的符號常量)。R_MAX的值至少應(yīng)為32767,也就是兩個字節(jié)(16位)所能表示的最大整數(shù)值。使用:inti=r()r函數(shù)產(chǎn)生的數(shù)值范圍可能與特定應(yīng)用中的數(shù)值范圍不同。例如,模擬擲硬幣的程序只要0(正面)和1(反面),模擬投骰子的程序只要1到6之間的隨機整數(shù)??梢允褂们竽_\算符(%)和r函數(shù)解決:r()%2產(chǎn)生0和1整數(shù)r(

2、)%6產(chǎn)生0到5之間的整數(shù)稱為比例縮放。數(shù)字2和數(shù)字6稱為比例因子,然后將所產(chǎn)生的數(shù)值范圍加1,即可得到所要結(jié)果??偨Y(jié):1)由r函數(shù)直接產(chǎn)生的值總是取值為:0≤r()≤R_MAX2)用一個語句模擬投骰子如下:face=1r()%6總是對變量face指定1≤face≤6的整數(shù)(隨機)。3)將2)一般化:n=ar()%b其中:a是位移值(等于所要的連續(xù)數(shù)范圍的開始值),b是比例因子(即由連續(xù)整數(shù)構(gòu)成的該范圍的寬度。例:#include#in

3、cludevoidmain()f(inti=1i)。voidsr(unsignedintseed)為r函數(shù)提供隨機種子(參數(shù)seed便是種子),就可以在每次執(zhí)行程序時產(chǎn)生不同的隨#include#include#includeusingnamespacestdvoid_st(intarray[]intn)intmain()intit1t2inta[100000]time_ttt1tt2sr(time(0))使計算機通過時鐘值自動取得種子

4、值time(0)或time(NULL)均可tt1=time(0)t1=ctime(ctime完成將以秒計的時間轉(zhuǎn)換為日期時間字符串f(i=0i100000i)a[i]=r()%100100couta[i]ttt1=time(NULL)排序開始前計時_st(a100000)tt2=time(NULL)排序結(jié)束計時t2=ctime(doubled=difftime(tt2tt1)時差couttt2ttt1tdendlreturn0void_

溫馨提示

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

評論

0/150

提交評論