崔羽
隨著計(jì)算機(jī)行業(yè)的高速發(fā)展,各色各樣的應(yīng)用軟件應(yīng)接不暇,計(jì)算機(jī)作為人類文明發(fā)展最重要的工具之一,其首要功能還是幫助人類進(jìn)行學(xué)術(shù)或者科學(xué)研究。因此,本文旨在介紹利用基于C#編程語言的winform開發(fā)工具顯示其演示過程,,實(shí)現(xiàn)用概率法計(jì)算π的演示系統(tǒng)。
【關(guān)鍵詞】C#概率算法 π值 winform
C#是微軟公司發(fā)布的一種面向?qū)ο蟮?,并且運(yùn)行于.NET Framework之上的高級程序設(shè)計(jì)語言,在微軟職業(yè)開發(fā)者論壇上亮相。C#是微軟公司的研究成果,其功能看起來和Java有著驚人的類似,包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但又與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對象模型)是直接集成的。
1 研究的意義
概率算法的一個(gè)基本特征是對所求解問題的同一實(shí)例,用同一概率算法求解兩次,有可能會(huì)得到兩種完全不同的結(jié)果,求解所需要的時(shí)間也有可能會(huì)有非常大的差異。通常情況下,可將概率算法大致分為四大類,即數(shù)值概率算法,蒙特卡羅算法,拉斯維加斯算法以及舍伍德算法。
其中,數(shù)值概率算法大多情況時(shí)用于對數(shù)值問題來進(jìn)行求解,這類算法所得到的解大多是近似解,而且近似解的精度會(huì)隨著計(jì)算時(shí)間的延長而不斷的提高。在許多的情況下,要計(jì)算出問題的精確解是不可能或者是沒有必要的,因此用數(shù)值概率算法可得到相當(dāng)滿意的解。尤其是,數(shù)值概率算法在求解諸如定積分,非線性方程以及諸多實(shí)際問題中應(yīng)用廣泛,很多情況下可以減小算法時(shí)間和空間的復(fù)雜度。把其隨機(jī)性引入到算法中去,會(huì)使得算法設(shè)計(jì)和分析的靈活性及解決問題的能力能夠改善很多。
2 需求分析
主界面為計(jì)算π的窗體,用戶在測試總點(diǎn)數(shù)的輸入框中輸入想要測試的落點(diǎn)總數(shù),然后點(diǎn)擊“計(jì)算π”按鈕開始演示,要求畫出清晰直觀的圖像來表現(xiàn)落點(diǎn)的位置,且計(jì)算出結(jié)果。
點(diǎn)擊“計(jì)算sin”按鈕進(jìn)入計(jì)算sin的窗體:輸入起點(diǎn)和終點(diǎn),點(diǎn)擊“開始計(jì)算”按鈕開始演示,要求畫出清晰直觀的圖像來表現(xiàn)落點(diǎn)的位置,且計(jì)算出結(jié)果。
點(diǎn)擊“計(jì)算cos”按鈕進(jìn)入計(jì)算cos的窗體:輸入起點(diǎn)和終點(diǎn),點(diǎn)擊“開始計(jì)算”按鈕開始演示,要求畫出清晰直觀的圖像來表現(xiàn)落點(diǎn)的位置,且計(jì)算出結(jié)果。
點(diǎn)擊“計(jì)算半立方拋物線”按鈕進(jìn)入計(jì)算立方拋物線的窗體:輸入起點(diǎn)和終點(diǎn),點(diǎn)擊“開始計(jì)算”按鈕開始演示,要求畫出清晰直觀的圖像來表現(xiàn)落點(diǎn)的位置,且計(jì)算出結(jié)果。
3 系統(tǒng)詳細(xì)設(shè)計(jì)
3.1 計(jì)算π值界面的實(shí)現(xiàn)
用戶在“測試總點(diǎn)數(shù)n”后面的輸入框內(nèi)輸入要投放的點(diǎn)數(shù),左邊標(biāo)有取值范圍,需要用戶按范圍輸入,界面效果圖如圖1。
3.2 計(jì)算π功能實(shí)現(xiàn)
當(dāng)系統(tǒng)開始進(jìn)行計(jì)算的時(shí)候,界面就會(huì)對落點(diǎn)的位置實(shí)時(shí)進(jìn)行更新,但無法讓一個(gè)像素點(diǎn)改變顏色,那么,假設(shè)投放隨機(jī)點(diǎn)的坐標(biāo)是(x,y),把此點(diǎn)看做起點(diǎn),將(x+1,y+1)看為終點(diǎn),在這兩點(diǎn)之間畫直線,這樣就可以達(dá)到預(yù)想的效果,這條線僅有像素的長度,并不能影響其視覺效果,計(jì)算結(jié)束后,結(jié)果顯示在右下角,效果圖如圖2。
4 對系統(tǒng)進(jìn)行測試并對結(jié)果進(jìn)行分析
在系統(tǒng)的各項(xiàng)開發(fā)環(huán)節(jié)陸續(xù)完成之后,為了測試系統(tǒng)運(yùn)行的準(zhǔn)確性,通過概率法計(jì)算π的近似值對大量的數(shù)據(jù)進(jìn)行測試,測試結(jié)果如表1。
目前已知的π的取值大概在3.1415~3.1416之間,通過測試得到的結(jié)果可以看出,當(dāng)投放的點(diǎn)足夠多時(shí),此系統(tǒng)計(jì)算π的近似值得出的結(jié)果還是比較接近真實(shí)。
參考文獻(xiàn)
[1]邢永康,馬少平.統(tǒng)計(jì)語言模型綜述[J].計(jì)算機(jī)科學(xué),2003(09):22-26.
[2]張敬芝,高強(qiáng),耿樺,等.統(tǒng)計(jì)自然語言處理中的線性插值平滑技術(shù)[J].計(jì)算機(jī)科學(xué),2007(34):223-225.
[3]許卓群等.數(shù)據(jù)結(jié)構(gòu)與算法[M].北京:高等教育出版社,2005.
[4]葉其孝主編.大學(xué)生數(shù)學(xué)建模競賽輔導(dǎo)教材(一)[M].長沙:湖南教育出版社,1993.
[5趙靜,但琦主編.數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)[M].北京:高等教育出版社,2000.
[6]盛驟,謝式千,潘承毅.概率論與數(shù)理統(tǒng)計(jì)(第二版)[M].北京:高等教育出版社,1989.
作者單位
武警警官學(xué)院 四川省成都市雙流縣 610213