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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

溫馨提示

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

評論

0/150

提交評論