周浙泉 王志宇 張棣妍 隆超怡 萬勇
摘要:系統(tǒng)用Java作為開發(fā)工具,對(duì)蒲豐擲針實(shí)驗(yàn)進(jìn)行計(jì)算機(jī)模擬實(shí)驗(yàn),并能給出統(tǒng)計(jì)分析。
關(guān)鍵詞:Buffon擲針實(shí)驗(yàn);計(jì)算機(jī)模擬實(shí)驗(yàn);Java
中圖分類號(hào):G642.423? ? ?文獻(xiàn)標(biāo)志碼:A? ? ?文章編號(hào):1674-9324(2019)42-0269-02
一、研究背景
18世紀(jì),蒲豐(Buffon)提出Buffon投針問題:(1)取一張白紙,在上面畫上許多條間距為a的平行線。(2)取一根長(zhǎng)度為l(l≤a/2)的針,隨機(jī)地向畫有平行直線的紙上擲n次,觀察針與直線相交的次數(shù),記為m。(3)計(jì)算針與直線相交的概率。
蒲豐證明了這個(gè)概率是:
p=。
因?yàn)樗cπ有關(guān),人們想到利用投針實(shí)驗(yàn)來估計(jì)圓周率的值。歷史上,有不少人做過蒲豐擲針實(shí)驗(yàn):
這個(gè)問題十分有趣,只是人工實(shí)驗(yàn)往往耗時(shí)、耗力,而用計(jì)算機(jī)模擬實(shí)驗(yàn),卻能迅速獲得結(jié)果。
自從20世紀(jì)90年代美國率先開始數(shù)學(xué)實(shí)驗(yàn)以來,數(shù)學(xué)實(shí)驗(yàn)改變了人們傳統(tǒng)的數(shù)學(xué)思維方式,人們發(fā)現(xiàn)數(shù)學(xué)是可以借助計(jì)算機(jī)去探索和發(fā)現(xiàn)的。近十年來,國內(nèi)外已有不少的數(shù)學(xué)實(shí)驗(yàn)教材和一些好的數(shù)學(xué)實(shí)驗(yàn)范例,但是這需要一定的計(jì)算機(jī)編程能力,如mathematica編程、matlab編程等,才能實(shí)現(xiàn)人機(jī)對(duì)話,因此數(shù)學(xué)實(shí)驗(yàn)只能在具有一定數(shù)學(xué)知識(shí)和較高計(jì)算機(jī)編程能力的特定人群中使用,不能“飛入尋常百姓家”。
二、系統(tǒng)的設(shè)計(jì)
本系統(tǒng)研發(fā)工具為Java語言。
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
Java看起來設(shè)計(jì)得很像C++,但是能夠自動(dòng)處理對(duì)象的引用和間接引用,實(shí)現(xiàn)自動(dòng)的無用單元收集,使用戶不必為存儲(chǔ)管理問題煩惱,能將更多的時(shí)間和精力花在研發(fā)上。
Java是一個(gè)面向?qū)ο蟮恼Z言。Java還包括一個(gè)類的擴(kuò)展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類(java.awt包),這里awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網(wǎng)絡(luò)功能的類(java.net包)。
Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機(jī)器碼。因此,Java支持快速原型和容易試驗(yàn),它將導(dǎo)致快速程序開發(fā)。這是一個(gè)與傳統(tǒng)的、耗時(shí)的“編譯、鏈接和測(cè)試”形成鮮明對(duì)比的精巧的開發(fā)過程。
三、系統(tǒng)的實(shí)現(xiàn)
1.系統(tǒng)主要功能。硬幣實(shí)驗(yàn)的動(dòng)畫模擬,相交頻率總匯圖,π值估計(jì)總匯,導(dǎo)出數(shù)據(jù)到txt文件,重置。
2.系統(tǒng)運(yùn)行情況?!禕uffon擲針實(shí)驗(yàn)的計(jì)算機(jī)模擬實(shí)驗(yàn)系統(tǒng)》使用步驟如下:
(1)雙擊打開,進(jìn)入軟件界面,如圖1。
(2)在“輸入執(zhí)行次數(shù)”文本框右邊的輸入框中輸入透針次數(shù),如圖2。
(3)點(diǎn)擊“執(zhí)行”按鈕,這時(shí)中間的投針示意圖中會(huì)顯示針的位置,如圖3。
(4)當(dāng)實(shí)驗(yàn)結(jié)束時(shí),在右邊的折線圖中會(huì)產(chǎn)生有實(shí)驗(yàn)結(jié)果的數(shù)據(jù)圖。
(5)當(dāng)想要再次實(shí)驗(yàn)時(shí),可以再次輸入你想要實(shí)驗(yàn)的次數(shù),點(diǎn)擊“執(zhí)行”,重復(fù)上述步驟,即可得到實(shí)驗(yàn)結(jié)果。
四、結(jié)論
本系統(tǒng)光盤儲(chǔ)存,攜帶方便,能在PC機(jī)上實(shí)驗(yàn),實(shí)驗(yàn)簡(jiǎn)單、方便、快捷,并給出統(tǒng)計(jì)數(shù)據(jù)。
本系統(tǒng)不要求實(shí)驗(yàn)操作者具備任何計(jì)算機(jī)編程能力,真正做到了數(shù)學(xué)實(shí)驗(yàn)“飛入尋常百姓家”。
本系統(tǒng)可作為“概率論與數(shù)理統(tǒng)計(jì)”(大、中學(xué))課程的配套實(shí)驗(yàn),以激發(fā)學(xué)生學(xué)習(xí)“概率論與數(shù)理統(tǒng)計(jì)”的興趣。
本系統(tǒng)成果論文獲湖南省數(shù)學(xué)學(xué)會(huì)2018年年會(huì)暨第30屆大學(xué)數(shù)學(xué)教學(xué)研討會(huì)“優(yōu)秀論文”二等獎(jiǎng)。
參考文獻(xiàn):
[1]高志偉.Authorware課件做作動(dòng)態(tài)指導(dǎo)[M].北京:機(jī)械工業(yè)出版社,2003:1-299.
[2]呂曉鵬.精通Flex3.0基于Actionscripe 3.0實(shí)現(xiàn)[M].北京:人民郵電出版社,2008:7-300.
[3]譚浩強(qiáng).C程序設(shè)計(jì)[M].第3版.北京:清華大學(xué)出版社,2005:1-180.
[4]印旻.Java與面向?qū)ο蟪绦蛟O(shè)計(jì)教程[M].北京:清華大學(xué)出版社,1999:1-260.