《程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)教學(xué)課件PPT》由會(huì)員分享,可在線閱讀,更多相關(guān)《程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)教學(xué)課件PPT(14頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1home back first prev next last 11 隨機(jī)數(shù)隨機(jī)數(shù)2home back first prev next last 隨機(jī)數(shù)及其應(yīng)用隨機(jī)數(shù)及其應(yīng)用 蒙特卡羅法應(yīng)用蒙特卡羅法應(yīng)用3home back first prev next last 隨機(jī)數(shù)是專(zhuān)門(mén)的隨機(jī)試驗(yàn)的結(jié)果,其重要的特性隨機(jī)數(shù)是專(zhuān)門(mén)的隨機(jī)試驗(yàn)的結(jié)果,其重要的特性是:它所產(chǎn)生的后面的那個(gè)數(shù)與前面的那個(gè)數(shù)毫是:它所產(chǎn)生的后面的那個(gè)數(shù)與前面的那個(gè)數(shù)毫無(wú)關(guān)系無(wú)關(guān)系 例如,擲硬幣,用例如,擲硬幣,用0和和1代表反、正面,可得到一個(gè)由代表反、正面,可得到一個(gè)由0、1組成的隨機(jī)數(shù)列組成的隨機(jī)數(shù)列 產(chǎn)生隨機(jī)數(shù)有多種不同的
2、方法,這些方法被稱(chēng)為產(chǎn)生隨機(jī)數(shù)有多種不同的方法,這些方法被稱(chēng)為隨機(jī)數(shù)發(fā)生器隨機(jī)數(shù)發(fā)生器 真正的隨機(jī)數(shù)是使用物理現(xiàn)象產(chǎn)生的:比如擲錢(qián)幣、骰真正的隨機(jī)數(shù)是使用物理現(xiàn)象產(chǎn)生的:比如擲錢(qián)幣、骰子、轉(zhuǎn)輪、使用電子元件的噪音、核裂變等等。這樣的子、轉(zhuǎn)輪、使用電子元件的噪音、核裂變等等。這樣的隨機(jī)數(shù)發(fā)生器叫做物理性隨機(jī)數(shù)發(fā)生器,它們的缺點(diǎn)是隨機(jī)數(shù)發(fā)生器叫做物理性隨機(jī)數(shù)發(fā)生器,它們的缺點(diǎn)是技術(shù)要求比較高技術(shù)要求比較高4home back first prev next last 在實(shí)際應(yīng)用中往往使用偽隨機(jī)數(shù)就足夠了。在實(shí)際應(yīng)用中往往使用偽隨機(jī)數(shù)就足夠了。這些數(shù)列是這些數(shù)列是“似乎似乎”隨機(jī)的數(shù),實(shí)際上它隨機(jī)的
3、數(shù),實(shí)際上它們是通過(guò)一個(gè)固定的、可以重復(fù)的計(jì)算方們是通過(guò)一個(gè)固定的、可以重復(fù)的計(jì)算方法產(chǎn)生的。計(jì)算機(jī)或計(jì)算器產(chǎn)生的隨機(jī)數(shù)法產(chǎn)生的。計(jì)算機(jī)或計(jì)算器產(chǎn)生的隨機(jī)數(shù)有很長(zhǎng)的周期性。它們不真正地隨機(jī),因有很長(zhǎng)的周期性。它們不真正地隨機(jī),因?yàn)樗鼈儗?shí)際上是可以計(jì)算出來(lái)的,但是它為它們實(shí)際上是可以計(jì)算出來(lái)的,但是它們具有類(lèi)似于隨機(jī)數(shù)的統(tǒng)計(jì)特征。這樣的們具有類(lèi)似于隨機(jī)數(shù)的統(tǒng)計(jì)特征。這樣的發(fā)生器叫做偽隨機(jī)數(shù)發(fā)生器。發(fā)生器叫做偽隨機(jī)數(shù)發(fā)生器。 5home back first prev next last 隨機(jī)數(shù)在編程中的應(yīng)用非常廣泛,例如隨機(jī)數(shù)在編程中的應(yīng)用非常廣泛,例如 游戲中,角色出現(xiàn)的位置和移動(dòng)的方式游戲中
4、,角色出現(xiàn)的位置和移動(dòng)的方式 科學(xué)計(jì)算和實(shí)驗(yàn)?zāi)M,等等科學(xué)計(jì)算和實(shí)驗(yàn)?zāi)M,等等6home back first prev next last 隨機(jī)生成一個(gè)數(shù)字,由玩家來(lái)猜。如果猜隨機(jī)生成一個(gè)數(shù)字,由玩家來(lái)猜。如果猜錯(cuò),提示猜大了或猜小了。如果猜對(duì)了,錯(cuò),提示猜大了或猜小了。如果猜對(duì)了,記錄猜測(cè)的次數(shù),游戲結(jié)束。記錄猜測(cè)的次數(shù),游戲結(jié)束。7home back first prev next last8home back first prev next last 蒙特卡羅(蒙特卡羅(Monte Carlo)算法計(jì)算圓周率的)算法計(jì)算圓周率的主要思想:主要思想: 給定邊長(zhǎng)為給定邊長(zhǎng)為R的正方形,畫(huà)其
5、內(nèi)切圓,然后在的正方形,畫(huà)其內(nèi)切圓,然后在正方形內(nèi)隨機(jī)打點(diǎn),設(shè)點(diǎn)落在圓內(nèi)的概為正方形內(nèi)隨機(jī)打點(diǎn),設(shè)點(diǎn)落在圓內(nèi)的概為P,則,則根據(jù)概率學(xué)原理:根據(jù)概率學(xué)原理:P = 圓面積圓面積 / 正方形面積正方形面積 PI * R * R / 2R * 2R = PI / 4。即即 PI=4P。這樣,當(dāng)隨機(jī)打點(diǎn)足夠多時(shí),統(tǒng)計(jì)出來(lái)。這樣,當(dāng)隨機(jī)打點(diǎn)足夠多時(shí),統(tǒng)計(jì)出來(lái)的概率就非常接近于的概率就非常接近于PI的四分之一了的四分之一了9home back first prev next last10home back first prev next last 由于由于 Scratch 本身的本身的原因,上面程序運(yùn)原
6、因,上面程序運(yùn)行需要一段比較長(zhǎng)行需要一段比較長(zhǎng)的時(shí)間,而且圓周的時(shí)間,而且圓周率計(jì)算的精度較低,率計(jì)算的精度較低,大概為大概為3.1左右。將左右。將來(lái)采取更專(zhuān)業(yè)的編來(lái)采取更專(zhuān)業(yè)的編程語(yǔ)言如程語(yǔ)言如C語(yǔ)言、語(yǔ)言、Java語(yǔ)言或語(yǔ)言或C#,會(huì),會(huì)計(jì)算的更快更準(zhǔn)。計(jì)算的更快更準(zhǔn)。11home back first prev next last為了說(shuō)明蒙特卡羅法計(jì)算為了說(shuō)明蒙特卡羅法計(jì)算圓周率的原理,下面在上圓周率的原理,下面在上面的計(jì)算代碼中加入了動(dòng)面的計(jì)算代碼中加入了動(dòng)畫(huà)演示。畫(huà)演示。在邊長(zhǎng)為在邊長(zhǎng)為100的正方形內(nèi),的正方形內(nèi),隨機(jī)生成一個(gè)點(diǎn)的坐標(biāo)隨機(jī)生成一個(gè)點(diǎn)的坐標(biāo) (x,y),如果點(diǎn)到原點(diǎn),
7、如果點(diǎn)到原點(diǎn)(0,0)的距離不大于的距離不大于100,說(shuō)明,說(shuō)明,這個(gè)點(diǎn)在以原點(diǎn)這個(gè)點(diǎn)在以原點(diǎn)(0,0)為圓為圓心,半徑為心,半徑為100的四分之的四分之一圓內(nèi)。下面程序中將角一圓內(nèi)。下面程序中將角色色1修改為只有一個(gè)像素修改為只有一個(gè)像素的紅點(diǎn),利用圖章功能在的紅點(diǎn),利用圖章功能在點(diǎn)點(diǎn)(x,y)畫(huà)一個(gè)紅點(diǎn)。畫(huà)一個(gè)紅點(diǎn)。12home back first prev next last編程求解如右圖所示不規(guī)編程求解如右圖所示不規(guī)則形狀紅色區(qū)域的近似面則形狀紅色區(qū)域的近似面積積提示提示 將圖片作為角色導(dǎo)入將圖片作為角色導(dǎo)入Scratch 繪制一邊長(zhǎng)已知的正方形包繪制一邊長(zhǎng)已知的正方形包含紅色圖形區(qū)域含紅色圖形區(qū)域 隨機(jī)生成正方形內(nèi)的點(diǎn),統(tǒng)隨機(jī)生成正方形內(nèi)的點(diǎn),統(tǒng)計(jì)與紅色區(qū)域碰撞的點(diǎn)數(shù)計(jì)與紅色區(qū)域碰撞的點(diǎn)數(shù) 計(jì)算正方形面積,點(diǎn)與紅色計(jì)算正方形面積,點(diǎn)與紅色區(qū)域碰撞的概率,以此求得區(qū)域碰撞的概率,以此求得紅色圖形區(qū)域面積紅色圖形區(qū)域面積13home back first prev next last14home back first prev next last 隨機(jī)數(shù)及其應(yīng)用隨機(jī)數(shù)及其應(yīng)用 蒙特卡羅法應(yīng)用蒙特卡羅法應(yīng)用