陳染
計(jì)算機(jī)剛剛出現(xiàn)的時(shí)候,人們就嘗試用計(jì)算機(jī)解決科學(xué)問(wèn)題。在傳統(tǒng)的科學(xué)研究中,科學(xué)家會(huì)對(duì)問(wèn)題提出相應(yīng)的假設(shè),再通過(guò)設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證假設(shè)。而計(jì)算機(jī)更注重于模型的構(gòu)建,通過(guò)模型對(duì)科學(xué)問(wèn)題進(jìn)行預(yù)測(cè)和假設(shè)。計(jì)算思維與科學(xué)思維并不是非此即彼的,它們互相補(bǔ)充,共同促進(jìn)科學(xué)的進(jìn)步。
一個(gè)著名的例子是阿蘭·圖靈(AlanTuring)運(yùn)用計(jì)算思維對(duì)生物學(xué)的研究。眾所周知,圖靈為計(jì)算機(jī)的發(fā)明提供了理論基礎(chǔ),被稱為“計(jì)算機(jī)之父”??甚r為人知的是,在圖靈晚年,他將研究精力放在生物學(xué)上,但他并不是只沉浸在實(shí)驗(yàn)室中,作為一名計(jì)算機(jī)科學(xué)家,圖靈試圖通過(guò)構(gòu)建計(jì)算機(jī)模型解釋生物學(xué)現(xiàn)象。1952年,也就是圖靈生命的最后一年,他完成了論文《形態(tài)發(fā)生的化學(xué)基礎(chǔ)》,這篇論文運(yùn)用計(jì)算機(jī)模型的方法探討了動(dòng)物身上花紋的形成規(guī)律。在模型中,圖靈假想了2種作用相反的物質(zhì):激活劑和抑制劑,通過(guò)這2種物質(zhì)的互相對(duì)抗形成不一樣的圖案。通過(guò)構(gòu)建這個(gè)模型,圖靈發(fā)現(xiàn)只需要改變激活劑和抑制劑的參數(shù),就能夠構(gòu)建出斑馬、豹子、斑點(diǎn)狗等動(dòng)物的圖案。為了紀(jì)念圖靈的貢獻(xiàn),人們把能夠通過(guò)圖靈提出的模型形成的圖案稱之為“圖靈斑圖”(圖1)。圖靈的這篇文章促成了一個(gè)全新的交叉學(xué)科領(lǐng)域“計(jì)算生物學(xué)”的產(chǎn)生。
這篇論文不僅在生物學(xué)研究上產(chǎn)生了重大影響,其所運(yùn)用的新思路在物理、化學(xué)乃至社會(huì)科學(xué)領(lǐng)域也產(chǎn)生了深遠(yuǎn)的影響。換一種思路,一些以前看上去棘手的問(wèn)題突然變得簡(jiǎn)單。作為教師,我們也可以將這種思路運(yùn)用于科學(xué)課程的學(xué)習(xí)中,通過(guò)構(gòu)建模型,更清楚地解釋科學(xué)課程中的現(xiàn)象,換一個(gè)角度也許學(xué)生的困惑便會(huì)迎刃而解。
探究物種的演化
自然選擇是中學(xué)生物課中的一個(gè)重要知識(shí)點(diǎn)。物競(jìng)天擇,適者生存,為了生存,有的生物演化出令人驚嘆的保護(hù)色,保護(hù)它們不被天敵發(fā)現(xiàn)。生物課本中所講的樺尺蠖便是一個(gè)典型的例子。
樺尺蠖是一種生活在樺樹(shù)上的蛾子,它有深色和淺色2種色型。19世紀(jì)中,科學(xué)家在曼徹斯特作了一個(gè)調(diào)查,發(fā)現(xiàn)這里的樺尺蠖大多數(shù)是淺色型,只有少數(shù)深色型。100年后,曼徹斯特已經(jīng)成為一座工業(yè)城市,工廠的濃煙熏黑了白色的樺樹(shù)皮。當(dāng)科學(xué)家來(lái)到同一個(gè)地方再次進(jìn)行樺尺蠖調(diào)查時(shí),發(fā)現(xiàn)這里的樺尺蠖大多數(shù)是深色型的,淺色型反而成了少數(shù)??茖W(xué)家認(rèn)為在自然的選擇之下,樺尺蠖發(fā)生了基因頻率的變化,相對(duì)于淺色型的SS基因,攜帶深色型的ss基因的樺尺蠖更容易生存下來(lái)。
在這個(gè)案例中,我們通過(guò)科學(xué)家的角度探究自然選擇對(duì)基因頻率變化的影響。我們還可以換一個(gè)角度,從捕獵者的角度探究自然選擇對(duì)基因型的影響。NetLogo的模型Bug HuntCamouflage(捕獵蟲(chóng)子,圖2)為我們提供了這樣的思路。
與其說(shuō)這是個(gè)模型,不如說(shuō)這是一個(gè)代入式的游戲。點(diǎn)擊go運(yùn)行模型時(shí),我們會(huì)看到右側(cè)的花田中會(huì)長(zhǎng)出一只只顏色各不相同的蟲(chóng)子,你的鼠標(biāo)也變成了鳥(niǎo)的形狀,你所要做的任務(wù)就是盡可能多地吃掉蟲(chóng)子。
這個(gè)模型模擬的是自然環(huán)境下蟲(chóng)子被天敵捕食時(shí)產(chǎn)生的自然選擇。每隔一段時(shí)間,蟲(chóng)子就會(huì)繁殖,生下來(lái)的大多數(shù)后代與前一代的顏色相同,少數(shù)情況會(huì)發(fā)生基因突變變成其他顏色。一開(kāi)始我們會(huì)很容易地找到蟲(chóng)子,過(guò)了一段時(shí)間后,捕食蟲(chóng)子變得越來(lái)越難,我們可以通過(guò)模型左側(cè)的捕蟲(chóng)數(shù)與時(shí)間的關(guān)系圖直觀地看到這種變化(圖3)。
當(dāng)我們覺(jué)得已經(jīng)難以找到蟲(chóng)子的時(shí)候,暫停模型的運(yùn)行,看看在這場(chǎng)捕蟲(chóng)游戲中你收獲了什么吧。
點(diǎn)擊模型的flash按鈕,未被捕捉的蟲(chóng)子會(huì)閃爍。我們會(huì)發(fā)現(xiàn)并不是所有的蟲(chóng)子都被捕捉,有些蟲(chóng)子在我們的捕捉下幸存下來(lái),并演化出保護(hù)色,不容易被我們發(fā)現(xiàn)。模型左側(cè)下部有6個(gè)直方圖,上面的3個(gè)直方圖表示的是當(dāng)前蟲(chóng)子的色彩、明暗和飽和度分布圖,而下面的3個(gè)圖表示的是游戲開(kāi)始時(shí)的蟲(chóng)子色彩、明暗和對(duì)比度的分布情況。通過(guò)2組圖的比較,我們可以直觀地看出蟲(chóng)子顏色是如何變化的(圖4)。
那么,自然選擇下蟲(chóng)子的基因型如何變化呢?這個(gè)模型巧妙地利用計(jì)算機(jī)顏色數(shù)值表示了蟲(chóng)子的基因型。我們知道,在計(jì)算機(jī)中,1個(gè)顏色由紅綠藍(lán)(RGB)三原色的不同配比組成,每個(gè)顏色的取值范圍從0-255,黑色的RGB值是0,0,0,意味著紅、綠、藍(lán)的取值都是0;白色的RGB值是255,255,255,通過(guò)這樣的表示方法,計(jì)算機(jī)總共可以顯示16 777216種顏色。這3種原色的數(shù)值組成了一個(gè)三維向量,在模型中我們用它代表蟲(chóng)子的基因型。我們通過(guò)計(jì)算每一個(gè)向量的標(biāo)準(zhǔn)差,就可以得知基因型的變化。模型右側(cè)花田圖片下方的圖便是向量標(biāo)準(zhǔn)差隨時(shí)間的變化圖,標(biāo)準(zhǔn)差越高,意味著蟲(chóng)子的基因型越相似,也意味著蟲(chóng)子的顏色越接近??纯丛谖覀儾东C期間,蟲(chóng)子的基因型發(fā)生了怎樣的變化(圖5)。
我們看到,隨著獵食者的捕食,蟲(chóng)子基因型的標(biāo)準(zhǔn)差越來(lái)越高,說(shuō)明蟲(chóng)子的基因型越來(lái)越相似。過(guò)了一段時(shí)間,我們發(fā)現(xiàn)標(biāo)準(zhǔn)差變小了,意味著蟲(chóng)子之間的基因型差異變大了,這發(fā)生了什么呢?仔細(xì)觀察生存下來(lái)蟲(chóng)子的顏色,我們會(huì)發(fā)現(xiàn)一個(gè)有意思的現(xiàn)象,分布在花上的蟲(chóng)子顏色更接近花的顏色,分布在葉子上的蟲(chóng)子更接近葉子的顏色。這個(gè)現(xiàn)象意味著經(jīng)過(guò)自然選擇之后,蟲(chóng)子分化為居住在花上的和居住在葉子上的2個(gè)生態(tài)位。
這個(gè)模型還可以幫助我們探究更多的問(wèn)題,例如,動(dòng)物的體型會(huì)對(duì)保護(hù)色產(chǎn)生什么影響,動(dòng)物的基因突變頻率是否有利于它的生存,動(dòng)物的后代遷徙距離對(duì)保護(hù)色有什么影響等。
我們看到,在捕獵蟲(chóng)子模型中,我們并沒(méi)有告訴蟲(chóng)子如何生成保護(hù)色,而是使蟲(chóng)子根據(jù)幾個(gè)簡(jiǎn)單的規(guī)則活動(dòng),或者說(shuō)這是模型的3個(gè)算法。
·鳥(niǎo)(玩家)會(huì)捕食蟲(chóng)子,被捕食的蟲(chóng)子從模型中消失;
·每過(guò)一段時(shí)間,蟲(chóng)子會(huì)生出新的蟲(chóng)子,新的蟲(chóng)子離原有蟲(chóng)子有一定距離;
·生出來(lái)的蟲(chóng)子大概率會(huì)延續(xù)上一代的顏色,小概率會(huì)突變成隨機(jī)顏色。
這個(gè)模型可以設(shè)置不同的環(huán)境,我們發(fā)現(xiàn),只需要構(gòu)建出這幾條規(guī)則,無(wú)論環(huán)境如何變化,蟲(chóng)子都可以很好地融入環(huán)境中。當(dāng)然,現(xiàn)實(shí)中的自然選擇比我們看到的復(fù)雜得多,模型是對(duì)現(xiàn)實(shí)的簡(jiǎn)化,我們不關(guān)注現(xiàn)實(shí)中復(fù)雜的變量,而是抽絲剝繭,關(guān)注最核心的問(wèn)題,這也就是計(jì)算思維研究問(wèn)題的方法。
探究植物的生長(zhǎng)
自然選擇不僅發(fā)生在動(dòng)物中,植物同樣也發(fā)生著自然選擇。例如,很多人喜歡養(yǎng)多肉植物,多肉植物吸引我們除了質(zhì)感厚實(shí)可愛(ài)之外,我們還發(fā)現(xiàn)它的葉片分布非常均勻,排列得很有規(guī)律,呈現(xiàn)出某種迷人的秩序之美。不只是多肉植物,很多植物,例如向日葵的花盤(pán),也會(huì)呈現(xiàn)出同樣的迷人的排列。在課本中我們常常把它們當(dāng)成自然界的數(shù)學(xué)之美的案例。
我們可以進(jìn)一步地探究這些迷人的秩序是如何形成的??茖W(xué)家發(fā)現(xiàn),圖案的形成與葉子的生長(zhǎng)角度有關(guān)??茖W(xué)家對(duì)很多輪生葉序植物進(jìn)行研究,發(fā)現(xiàn)很多輪生葉序植物長(zhǎng)出的第1片葉子和第2片葉子的夾角度數(shù)是137.51°。137.51°是一個(gè)神奇的角度,如果2片葉子的夾角是137.51°,那么它的補(bǔ)角就是222.49°,這2個(gè)角度的比值接近黃金分割比例0.618,因此,137.51°也被稱為黃金角。為什么那么多的植物會(huì)選擇黃金角呢?我們可以通過(guò)模型進(jìn)行探究。
NetLogo模型庫(kù)中的Sunflower模型(圖6)很好地模擬了不同角度下葉子生長(zhǎng)的情況。在這個(gè)模型中,我們將植物的整體形狀的形成分解為每一片葉子的生長(zhǎng)模式,并用“海龜”來(lái)代表葉子。
在這個(gè)模型中,葉子的生長(zhǎng)行為遵守以下幾個(gè)規(guī)則。
·葉子從畫(huà)面原點(diǎn)開(kāi)始生長(zhǎng),生長(zhǎng)方向與上一片長(zhǎng)出的葉子保持一定的夾角;
·葉子會(huì)逐漸遠(yuǎn)離原點(diǎn);
·葉子會(huì)逐漸長(zhǎng)大。
在模型中,我們可以調(diào)整葉片夾角的比例,探究不同比例會(huì)形成怎樣的圖案,將比例設(shè)置成0.617、0.618 034和0.619,運(yùn)行模型,我們看到模型會(huì)生成3種不一樣的花(圖7)。
我們看到,盡管比例上只有0.001的微小差別,轉(zhuǎn)換成角度只有0.36°,但花的形狀卻非常不一樣。比例為0.617和0.619的花都會(huì)產(chǎn)生空隙,有些葉子還會(huì)互相堆疊,導(dǎo)致空間的利用率不高。而只有遵循黃金角度的花會(huì)充分填滿花盤(pán)的空間,同時(shí)又不會(huì)發(fā)生葉子的堆疊。在現(xiàn)實(shí)中,這樣的葉子排列能夠更充分地利用空間,更具有競(jìng)爭(zhēng)優(yōu)勢(shì)。因此,在自然選擇中,很多植物的葉片都采用了黃金角的生長(zhǎng)角度。
用模型探究概率問(wèn)題
概率論是中學(xué)數(shù)學(xué)中非常重要的一部分,也是比較適合用于開(kāi)發(fā)計(jì)算機(jī)模型的主題。其中, “三門(mén)問(wèn)題”是中學(xué)概率論中一個(gè)很有趣同時(shí)又很令學(xué)生困惑的問(wèn)題,理解三門(mén)問(wèn)題將有助于學(xué)生更好地學(xué)習(xí)條件概率。三門(mén)問(wèn)題的表述如下。
三門(mén)問(wèn)題又叫蒙提霍爾問(wèn)題。它源自20世紀(jì)60年代的美國(guó)電視節(jié)目“Let's Make ADeal”。參賽者經(jīng)過(guò)重重闖關(guān)后,會(huì)看見(jiàn)三扇關(guān)閉的門(mén)。其中一扇的后面藏著1輛汽車,而另外兩扇門(mén)后面則各藏著1只山羊,參賽者想要獲得汽車而不是山羊。此時(shí),參賽者指定了一扇門(mén),但未去開(kāi)啟它的時(shí)候,知道門(mén)后情形的節(jié)目主持人會(huì)開(kāi)啟剩下兩扇門(mén)中背后是山羊的一扇門(mén),并詢問(wèn)參賽者: “是否轉(zhuǎn)換選擇指定另一扇門(mén)?”
這時(shí)候參賽者就產(chǎn)生分歧,有人選擇轉(zhuǎn)換指定,有人選擇不轉(zhuǎn)換,他們的思維方式是怎樣的呢?
選擇轉(zhuǎn)換指定的人:無(wú)論選擇哪一扇門(mén),主持人都會(huì)打開(kāi)另外兩扇門(mén)中沒(méi)有汽車的一扇,在剩下兩個(gè)答案中排除了一個(gè)選項(xiàng),那意味著剩下的一扇門(mén)有中獎(jiǎng)的概率更高,所以選擇轉(zhuǎn)換指定的門(mén)。
選擇不轉(zhuǎn)換指定的人:無(wú)論選擇哪一扇門(mén),主持人都會(huì)打開(kāi)一扇有山羊的門(mén)。沒(méi)有打開(kāi)的兩扇門(mén)中,其中一扇門(mén)是汽車,另一扇門(mén)是山羊,所以每扇門(mén)的中獎(jiǎng)概率是1/2,因此轉(zhuǎn)換與否不影響中獎(jiǎng)概率,因此選擇不轉(zhuǎn)換。
這兩種思維看上去都很有道理,哪一種是正確的呢?試一試就知道了。概率實(shí)驗(yàn)需要重復(fù)多次才能得出正確的結(jié)論,在現(xiàn)實(shí)中反復(fù)進(jìn)行這個(gè)實(shí)驗(yàn)費(fèi)時(shí)費(fèi)力、效率低下,而運(yùn)用計(jì)算機(jī)構(gòu)建模型,可以在極短的時(shí)間內(nèi)進(jìn)行成百上千次實(shí)驗(yàn),在現(xiàn)實(shí)中可能需要數(shù)十個(gè)小時(shí)完成的實(shí)驗(yàn),在計(jì)算機(jī)里只需要幾秒鐘就完成了。NetLogo模型庫(kù)中的Three Doors便是讓“海龜”自動(dòng)進(jìn)行重復(fù)實(shí)驗(yàn)的模型。
這個(gè)模型讓數(shù)百只“海龜”不停地進(jìn)行三門(mén)游戲。實(shí)驗(yàn)開(kāi)始時(shí),每只“海龜”按照以下幾條規(guī)則活動(dòng):
·每只海龜有3個(gè)選項(xiàng),其中1個(gè)選項(xiàng)是獲獎(jiǎng)選項(xiàng);
·海龜在3個(gè)選項(xiàng)中隨機(jī)選擇1個(gè);
·去掉剩余2個(gè)選項(xiàng)中不是獲獎(jiǎng)選項(xiàng)的1個(gè);
·海龜選擇是否轉(zhuǎn)換選擇(黑色海龜表示永遠(yuǎn)選擇轉(zhuǎn)換,白色海龜表示永遠(yuǎn)選擇不轉(zhuǎn)換);
·如果海龜選擇的是獲獎(jiǎng)選項(xiàng),則獎(jiǎng)勵(lì)向前前進(jìn)一步,如果不是獲獎(jiǎng)選項(xiàng),則不進(jìn)行任何操作。
設(shè)計(jì)了海龜?shù)男袨橐?guī)則之后,我們就可以將它轉(zhuǎn)換成計(jì)算機(jī)能夠理解的程序,教師可以引導(dǎo)學(xué)生設(shè)計(jì)模型程序的流程圖(圖9),清晰地順理模型設(shè)計(jì)思路,這種方法有助于我們?cè)O(shè)計(jì)自己的模型。
這個(gè)模型有2種運(yùn)行模式,點(diǎn)擊gradation即可切換。當(dāng)gradation開(kāi)關(guān)關(guān)閉的時(shí)候,點(diǎn)擊運(yùn)行,我們看到黑色的海龜跑得比白色的海龜更快;當(dāng)gradation開(kāi)關(guān)開(kāi)啟時(shí),點(diǎn)擊運(yùn)行,海龜作出隨機(jī)選擇而不是固定選擇,顏色越深的海龜更傾向于選擇轉(zhuǎn)換,顏色越淺的海龜更傾向于選擇不轉(zhuǎn)換。我們同樣發(fā)現(xiàn)越深色的海龜跑得越快。通過(guò)這個(gè)實(shí)驗(yàn),我們看到選擇轉(zhuǎn)換的海龜更容易獲得獎(jiǎng)品,也說(shuō)明了第1種思維方式的正確性。
通過(guò)這個(gè)模型,我們?cè)谟?jì)算機(jī)里做了成千上萬(wàn)次實(shí)驗(yàn),并通過(guò)“海龜賽跑”的形式直觀地展現(xiàn)實(shí)驗(yàn)結(jié)果。如果有條件,我們可以引導(dǎo)學(xué)生自己通過(guò)Pwthon或Scratch建立三門(mén)問(wèn)題模擬,相信對(duì)學(xué)生理解背后的條件概率有更大的幫助。
用蒙特卡洛法計(jì)算圓周率
我們看到計(jì)算機(jī)可以在很短時(shí)間內(nèi)將一個(gè)程序重復(fù)執(zhí)行成千上萬(wàn)次。這種優(yōu)勢(shì)不僅可以讓我們認(rèn)識(shí)概率問(wèn)題,科學(xué)家還通過(guò)它解決了許多難以解決的問(wèn)題,圍棋AI程序便是其中的一個(gè)例子。圍棋有19×19總共361個(gè)交叉點(diǎn),每個(gè)交叉點(diǎn)可以有黑棋、白棋、沒(méi)有棋子3種情況,除去圍棋規(guī)則不允許和對(duì)稱的情況外,總共約為2×10170種情況,比整個(gè)宇宙的原子還多,復(fù)雜度之高計(jì)算機(jī)顯然無(wú)法計(jì)算所有情況。那么,著名的人工智能圍棋程序AlphaGo是如何在如此復(fù)雜的選擇中簡(jiǎn)化局面作出最佳選擇的呢?
Alpha Go戰(zhàn)勝人類的秘密是依靠蒙特卡洛樹(shù)搜索和深度神經(jīng)網(wǎng)絡(luò)。其中,蒙特卡洛法的作用就是簡(jiǎn)化局面,使計(jì)算機(jī)無(wú)須遍歷所有情況,即可在有限的時(shí)間內(nèi)找出最佳一著。
蒙特卡洛法又叫模擬法,它源于20世紀(jì)40年代美國(guó)開(kāi)啟研制原子彈的“曼哈頓計(jì)劃”。在研制原子彈的過(guò)程中,馮·諾依曼提出了一種新的算法,它最大的特點(diǎn)就是“蒙”。面對(duì)一個(gè)高度復(fù)雜的系統(tǒng),蒙特卡洛法通過(guò)大量隨機(jī)模擬,估算系統(tǒng)的最優(yōu)解。蒙特卡洛算法就像盲人摸象,盲人無(wú)法看到大象的全貌,只能靠摸猜測(cè)大象的樣子,有人摸到象鼻子,有人摸到象尾巴,有人摸到象腿,怎樣了解大象的全貌呢?我們可以找來(lái)盡可能多的盲人,讓盲人隨機(jī)摸大象,然后將所有盲人的答案集合起來(lái),我們就能估計(jì)出大象的全貌。
在計(jì)算機(jī)發(fā)明之前,人們已經(jīng)產(chǎn)生了“布豐投針”實(shí)驗(yàn)等用隨機(jī)現(xiàn)象認(rèn)識(shí)復(fù)雜系統(tǒng)的思想,但囿于無(wú)法產(chǎn)生大量樣本,布豐投針實(shí)驗(yàn)更像是數(shù)學(xué)家閑暇之余的游戲。計(jì)算機(jī)的發(fā)明,使得快速生成大量隨機(jī)樣本成為可能,也讓它從數(shù)學(xué)游戲變成了真正實(shí)用的工具。為了更好地了解蒙特卡洛法,我們可以用NetLogo設(shè)計(jì)一個(gè)蒙特卡洛法計(jì)算圓周率的程序。
設(shè)計(jì)蒙特卡洛法計(jì)算圓周率的思路核心是我們需要構(gòu)造一個(gè)辦法讓圓周率丌與某個(gè)概率聯(lián)系起來(lái)。計(jì)算圓周率,我們首先要聯(lián)想圓,圓的面積公式是S=丌,,我們可以利用圓面積構(gòu)造概率,而剩下要做的就是想辦法消掉,。
我們可以這樣構(gòu)造模型:作圓及外切正方形。設(shè)圓的半徑為r,則外接正方形邊長(zhǎng)為2r。然后我們?cè)谡叫蝺?nèi)隨機(jī)投點(diǎn),設(shè)投點(diǎn)總數(shù)為a,落入圓內(nèi)的點(diǎn)數(shù)為b,那么,投點(diǎn)落入圓內(nèi)的概率b:a為S圓:S方,即πr2/4r2=π/4。這樣,我們就可以將概率與圓周率丌聯(lián)系起來(lái)。
有了思路,我們就可以通過(guò)NetLogo程序設(shè)計(jì)模型。我們?cè)谀P偷摹巴咂鄙献鲌A,并將“海龜”投點(diǎn)到模型中,通過(guò)判斷海龜?shù)奈恢檬窃趫A內(nèi)還是在圓外,計(jì)算出圓周率丌的數(shù)值。我們可以設(shè)立“初始化”和“運(yùn)行”2個(gè)按鈕,分別對(duì)它們進(jìn)行編程,模型的程序流程圖分別如圖10。
我們用變量total統(tǒng)計(jì)總共的海龜數(shù),用變量turtlein_green統(tǒng)計(jì)落在綠色圓內(nèi)的海龜個(gè)數(shù)。我們通過(guò)監(jiān)視窗估算圓周率丌的值,計(jì)算方法為(turtlesin_green/total)*4。在左下方的圖表計(jì)算的是估算值與真實(shí)值的誤差率。我們看到,一開(kāi)始投點(diǎn)比較少的時(shí)候,誤差率非常高,但經(jīng)過(guò)了10萬(wàn)多次投點(diǎn)采樣后,我們將能夠?qū)⒄`差率降低到0. 02%(圖11)。
通過(guò)這個(gè)模型,我們可以歸納出蒙特卡洛法的特點(diǎn)。蒙特卡洛法需要多次重復(fù)實(shí)驗(yàn):需要多次隨機(jī)采樣才能了解一個(gè)系統(tǒng),與之相對(duì)的,蒙特卡洛法精確度較低,我們需要進(jìn)行數(shù)萬(wàn)次乃至數(shù)十萬(wàn)次投點(diǎn),才能達(dá)到比較滿意的結(jié)果。但蒙特卡洛法的計(jì)算較為簡(jiǎn)便,對(duì)于復(fù)雜度比較高的計(jì)算,蒙特卡洛法可以簡(jiǎn)化計(jì)算量,也是這個(gè)特點(diǎn),蒙特卡洛法的泛用性比較高,對(duì)于不規(guī)則的圖形,普通的數(shù)學(xué)方法可能難以通過(guò)積分等方法計(jì)算其面積,而蒙特卡洛法能夠快速估計(jì)不規(guī)則圖形的面積。這種利用計(jì)算機(jī)生成大量隨機(jī)樣本的思維模式,正是計(jì)算思維在數(shù)學(xué)領(lǐng)域的應(yīng)用。