下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計(jì)算n的方法一、蒙特卡羅法(MonteCarlo)蒙特卡洛方法是一種以概率統(tǒng)計(jì)理論為指導(dǎo)的一類非常重要的數(shù)值計(jì)算方法。蒙特卡羅是摩納
哥公國的一座城市(賭城)。Buffon投針就是蒙特卡洛方法的思想,但是Buffon是蒙特卡洛方法的
起源。蒙特卡洛方法同樣可以通過隨機(jī)通過產(chǎn)生隨機(jī)數(shù)的方式來解決計(jì)算問題。比如估算和計(jì)算不
規(guī)則圖形的面積。圖1蒙特卡羅方法模擬這種方法是一種利用計(jì)算機(jī)隨機(jī)數(shù)的功能基于“隨機(jī)數(shù)”的算法,通過計(jì)算落在單位圓內(nèi)的點(diǎn)與落在正方形內(nèi)的點(diǎn)的比值求PI。圖2蒙特卡羅方法由于圖形的對稱性,我們靠考慮該圖的四分之一部分。假定一點(diǎn)能夠均勻地扔到一個正方形中,計(jì)算落入其中的點(diǎn)個數(shù)。通過計(jì)數(shù)其中落入內(nèi)切圓的點(diǎn)的個數(shù);
如果一共投入N個點(diǎn),其中有M個落入圓中,則只要點(diǎn)均勻,假定圓周的半徑為R,則:J卑即2JN(2R)2' N式(1)該方法得到的要得到n的精度與投入點(diǎn)的個數(shù)有關(guān),一般個數(shù)較大時精度比較高。doublerandpi(intn){intnumInCircle=O;doublex,y;doublepi;for(inti=0;i〈n;i++){x=rand()*1.0/RAND_MAX;y=rand()*1.0/RANDMAX;if(x*x+y*y〈1)numInCircle++;i=(4.0*numlnCircle)/n;returnpi;圖3蒙特卡羅示例代碼寫出來你的代碼實(shí)際測試結(jié)果(lOMarks)表1蒙特卡羅方法實(shí)際測試結(jié)果
由數(shù)學(xué)公式:?式(2)當(dāng)n取1000時就很接近圖4級數(shù)方法示例代碼寫出來你的代碼實(shí)際測試結(jié)果(lOMarks)表2級數(shù)方法實(shí)際測試結(jié)果次數(shù)10102103104105106107108109計(jì)算值運(yùn)行時間(ms)誤差三、劃分網(wǎng)格計(jì)算n圖5蒙特卡羅示例代碼將圖片分為n*n個小方形,統(tǒng)計(jì)落在圓內(nèi)的個數(shù)占所有方形的比例。圖6網(wǎng)格劃分示例代碼寫出來你的代碼實(shí)際測試結(jié)果(lOMarks)表3網(wǎng)格劃分方法實(shí)際測試結(jié)果次數(shù)10102103104105106107108109計(jì)算值運(yùn)行時間(ms)誤差A(yù)ppendix時間統(tǒng)計(jì)
方法一:clock統(tǒng)計(jì)
在待測試程序的開始部分和結(jié)束部分分別加入clock統(tǒng)計(jì),兩個之間的差值就是該部分代碼運(yùn)
行時間。需要注意的是Windows下和Linux下頭文件不一樣。clockt st//getcurrentclockcountstart=clock();//Insertyourcodehere■-■< ;//getcurrentclockcountend=clock();printf( ,end—start);方法二:系統(tǒng)API精確統(tǒng)計(jì)時間Windows和Linux下均有精確計(jì)時方法。在Windows下可以用系統(tǒng)提供的API函數(shù)?QueryPerformanceFrequency和?QueryPerformanceCounter?來進(jìn)行高精度的計(jì)時,現(xiàn)在的機(jī)器基本上都提供這種高精度的計(jì)時啦,所以不用擔(dān)心。利用該函數(shù)可以精確的計(jì)時到微妙級別。QueryPerformanceFrequency()可以得到CPU的時鐘頻率。QueryPerformanceCounter()可以通過兩次的差值來得到CPU的時鐘周期差值。這樣就可以計(jì)算出兩次差值之間所花費(fèi)的時間,當(dāng)然這里計(jì)算出來的時間是秒,一般都換算為毫秒或者微秒來表示。Windows#ifdefWIN32]num;start,end,freq,timel,time2;1#endif1//開始計(jì)時#ifdefWIN32QueryPerformanceFrequency(&num);freq=num.QuadPart;QueryPerformanceCounter(&num);tart=num.QuadPart;#endif//插入待測時間代碼//Sleep(1000);//結(jié)束計(jì)時時間#ifdefWIN32QueryPerformanceCounter(&num);end=num.QuadPart;time1=(end-start)*1000/freq;printf( ,(end—start)*1000/freq);#endif?gettimeofday精確到微秒級別?計(jì)時函數(shù)intgettimeofday(structtimeval*tv,structtimezone*tz);說明:gettimeofday將時間保存在結(jié)構(gòu)tv之中,
struttimevalgivesthenumberofsecondsandmicrosecondssincetheEpoch,
(00:00:00UTC,January1,1970),measuredinmicroseconds.??tz(即timezone,很少用至【」)一般我們
使用null來代替。保存時間的結(jié)構(gòu)體struttimeval{longtv_sec;longtv_usec;};注:需要頭文件#“cludevsys/time.h>__structtimevalta,tb;^^^^^^^^^^^^^Hdoyblemseca,msecb;//開始計(jì)時_^^ettimeofday(&ta^NULL);^^^^^^^^^Hmseca=ta.tvsec*1000000.0+ta.tvusec;|//插入運(yùn)行代碼/Insertyourcodehere^^^^^^^^^^
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB12T 544-2014 南水北調(diào)工程項(xiàng)目檔案歸檔整.理規(guī)范
- 人生大事的觀后感
- 中學(xué)新學(xué)期開學(xué)的致辭(17篇)
- 中學(xué)校長開學(xué)會議講話稿(6篇)
- 中學(xué)高級述職報告
- 教師課件制作教學(xué)課件
- 影響薪酬管理的因素及原則
- 澆鑄型工業(yè)有機(jī)玻璃板材 編制說明
- 歌曲春曉課件教學(xué)課件
- 榜樣事跡課件教學(xué)課件
- 完整版平安基礎(chǔ)性向測試智商測試題及問題詳解
- (完整版)基層版創(chuàng)傷中心建設(shè)指南(試行)
- 無公害生姜生產(chǎn)基地項(xiàng)目可行性研究報告
- 學(xué)習(xí)鄉(xiāng)村振興知識競賽100題及答案
- 05s502圖集閥門井安裝圖集
- 醫(yī)務(wù)人員醫(yī)學(xué)人文素養(yǎng)培訓(xùn)
- 人工智能智慧樹知到答案章節(jié)測試2023年復(fù)旦大學(xué)
- 風(fēng)險管理工具及方法FMEA
- 第五單元《圓》(單元解讀)-六年級數(shù)學(xué)上冊人教版
- 初中物理知識點(diǎn)手冊大全(挖空+答案)
- GB/T 32131-2015辣根過氧化物酶活性檢測方法比色法
評論
0/150
提交評論