版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗5A隨機數(shù)的產生方法一、實驗目的1、掌握java中產生隨機數(shù)的四種方式2、掌握如何實現(xiàn)滿足一定分布條件的隨機數(shù)二、實驗準備1、有四種產生隨機數(shù)的方式:(1)通過System.currentTimeMillis()來獲取一個當前時間毫秒數(shù)的long型數(shù)字。假如要獲取[0,100)之間的int整數(shù),方法如下:finallongl=System.currentTimeMillis();finalinti=(int)(l%100);(2)通過Math.random()返回一個0到1之間的double值。假如要獲取[0,100)之間的int整數(shù)。方法如下:finaldoubled=Math.random();finalinti=(int)(d*100);(3)通過java.util.Random類來產生隨機數(shù)。該類有兩個構造函數(shù),分別是Random()和Random(longseed)。Random()使用當前時間即System.currentTimeMillis()作為發(fā)生器的種子,Random(longseed)使用指定的seed作為發(fā)生器的種子。隨機數(shù)發(fā)生器(Random)對象產生以后,可以調用不同的方法:nextInt()、nextLong()、nextFloat()、nextDouble()等來獲得不同類型隨機數(shù)。若要控制隨機數(shù)在某個范圍內,可以使用模數(shù)運算符%。如果2個Random對象使用相同的種子,則它們返回值完全相同。下面代碼中兩個Random對象的輸出完全相同importjava.util.*;classTestRandom{publicstaticvoidmain(String[]args){Randomrandom1=newRandom(100);System.out.println(random1.nextInt());System.out.println(random1.nextFloat());System.out.println(random1.nextBoolean());Randomrandom2=newRandom(100);System.out.println(random2.nextInt());System.out.println(random2.nextFloat());System.out.println(random2.nextBoolean());}}(4)對安全性有要求的隨機數(shù)應用情景,可以用java.security.SecureRandom。代替?zhèn)坞S機的Random類。該類繼承自Random類,并覆蓋了next(n)函數(shù),所以可以利用其提供的強隨機的種子算法(SHA1PRNG)來生成隨機數(shù)。當然這是以犧牲效率為前提的,大概相差1個數(shù)量級。2、有時需要生成服從規(guī)定分布的隨機數(shù)(如在蒙特卡羅方法中),例如高斯分布或指數(shù)分布等。有些編程語言已經有比較完善的實現(xiàn),例如Python的NumPy、Matlab均可以提供有相關函數(shù)可以實現(xiàn):(1)按照均勻分布生成隨機整數(shù);(2)按照均勻分布生成隨機自然數(shù);按照標準正態(tài)分布生成隨機數(shù);(4)按照二項分布生成隨機數(shù);(5)按照泊松分布生成隨機數(shù);(6)生成指定的常用分布的隨機數(shù),;(7)按自定義概率生成隨機數(shù);(8)生成自然數(shù)偽隨機序列。我們可以利用均勻分布的疊加生成滿足正態(tài)分布條件的隨機數(shù)。中心極限定理指出,n個相互獨立同分布的隨機變量之和的分布近似于正態(tài)分布,n越大,近似程度越好。逆變換法、Box–Muller算法、Ziggurat算法等都可以用來生成滿足正態(tài)分布條件的隨機數(shù)。讀者自己也可以思考一下如何實現(xiàn)滿足其它分布的隨機數(shù)。三、實驗內容利用互聯(lián)網,在線生成“隨機數(shù)”。利用百度搜索,很容易找到“生成隨機數(shù)”的電腦小程序和手機APK,輸入想要的條件,即可自動生成用戶所需的隨機數(shù)。2、編程實現(xiàn)“體育彩票開獎”模擬實驗,給出實驗代碼?!绑w育彩票開獎”問題:現(xiàn)場隨機產生七位數(shù)(首位可以是0),每個數(shù)位上均為 0~9的隨機整數(shù),即開獎結果為0~9中的任意一個七位數(shù)。3、說明下列程序的功能。publicdoubleNorm_rand(doublemiu,doublesigma2){doubleN=12;doublex=0,temp=N;do{x=0;for(inti=0;i<N;i++)x=x+(Math.random());x=(x-temp/2)/(Math.sqrt(temp/12));x=miu+x*Math.sqrt(sigma2);}while(x<=0);//在此我把小于0的數(shù)排除掉了returnx;}4、分析下列代碼的功能,畫出算法流程圖。packagesuijishu;publicclassSuijishu{privatelongxn=0;privatelongc=0;publicintrandom_num(inta,intb){return(int)(random()%(b-a+1)+a);}publiclongrandom()//生成第n+1個的隨機數(shù)過程{intMultiplier=16807;longModulus=((1<<31)-1);xn=(Modulus*xn+c)%Multiplier;c=xn;returnxn;}publicvoidsetseed(longseed)//取種子{xn=seed;}//主函數(shù)publicstaticvoidmain(String[]args){//TODO自動生成的方法存根Suijishusjs=newSuijishu();intnum[]=newint[6];//模擬色子的六個面整型變量intaccount=0;sjs.setseed(System.currentTimeMillis());for(inti=0;i<6000;i++)//模擬循環(huán)6000次搖色子的過程{account=sjs.random_num(1,6);//搖色子++num[account-1];//對應的色子面的變量加一}for(intj=0;j<6;j++){System.out.println((j+1)+":"+num[j]);//看最終色子對應面被搖的次數(shù)}}}四、實驗報告1.通過實驗回答下列問題(1)請給出你的實驗1的地址、實驗2的代碼,實驗3和4的功能描述。實驗1網址:/網頁截圖:實驗2結果生成:代碼展示:實驗3功能介紹:生成符合正態(tài)分布的隨機數(shù)實驗4功能介紹:隨機生成色子,投擲6000次,記錄丟出數(shù)的數(shù)量。算法流程圖:開始開始i=0i=0輸出1-6的統(tǒng)計數(shù)i<6000輸出1-6的統(tǒng)計數(shù)i<6000NO生成隨機數(shù)1-6i=I+1生成隨機數(shù)1-6i=I+1結束結束根據(jù)教材中偽隨機數(shù)生成器的構造原理,自己設計一個生成器算法,給出算法的理論依據(jù)、算法流程和代碼實現(xiàn)。程序演示:2.簡答題(1)如何產生滿足正態(tài)分布、均勻分布、二項分布或泊松分布的隨機數(shù)?(2)Python中有哪些方式可以產生隨機數(shù)?1、random.randrom(),括號中不填參數(shù)生成0到1直接之間的隨機實數(shù),區(qū)間[0,1)2、random.randint(0,100)生成0到100直接之間的隨機整數(shù),區(qū)間[0,100]3、random.randrange(0,100),第一個參數(shù)可以省略,默認0生成0到100直接之間的隨機整數(shù),區(qū)間[0,100)4、random.uniform(0,100)生成0到100直接之間的隨機浮點數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高端芯片研發(fā)與生產許可合同
- 二零二五年度個人消費貸款合同標準范本6篇
- 2025年度消防工程施工圖審查合同協(xié)議書3篇
- 2025年度智能家居系統(tǒng)研發(fā)合同證明書3篇
- 2024年貨權轉移合同樣本2篇
- 二零二五年度體育設施個人承包管理合同
- 二零二五年度20XX標準離婚協(xié)議范本離婚后子女教育資助與成長規(guī)劃3篇
- 二零二五年度企業(yè)融資反擔保合同范本3篇
- 2024年高端醫(yī)療設備采購與維修合同
- 2025年度包裝盒印刷材料環(huán)保認證采購合同3篇
- 統(tǒng)編語文八上文言文過關小測驗-《愚公移山》
- 12、口腔科診療指南及技術操作規(guī)范
- 醫(yī)藥電商行業(yè)發(fā)展趨勢報告
- 2020年10月自考00020高等數(shù)學一高數(shù)一試題及答案含評分標準
- 勞務派遣方案
- 電費異常問題篩選及處理途徑
- 幼兒園中班語言繪本《三只蝴蝶》課件
- 高中英語校本教材《英語美文閱讀與欣賞》
- 深邃的世界:西方繪畫中的科學學習通超星課后章節(jié)答案期末考試題庫2023年
- 學校教育系統(tǒng)隊伍教育整頓自查問題清單
- 輔酶Q10-教學講解課件
評論
0/150
提交評論