摘要:代碼實現(xiàn)在上面的程序中我們用個隨機數(shù)進行投放,這樣得到的結(jié)果會更精確一些,運行程序需要一定的時間,最終得到的結(jié)果如下下面我們進行一項簡單的應(yīng)用,下圖為我在畫圖工具中隨便畫的一個圖,我們可以用蒙特卡羅方法來估算圖中黑色部分的面積。
蒙特卡羅方法是一種統(tǒng)計模擬方法,由馮·諾依曼和烏拉姆提出,在大量的隨機數(shù)下,根據(jù)概率估計結(jié)果,隨機數(shù)據(jù)越多,獲得的結(jié)果越精確。下面我們將用python實現(xiàn)蒙特卡羅方法。
1.首先我們做一個簡單的圓周率的近似計算,在這個過程中我們要用到隨機數(shù),因此需要先使用import numpy as np導(dǎo)入numpy庫。
2.代碼實現(xiàn):
import numpy as np total = 8000000 count = 0 for i in range(total): x = np.random.rand() y = np.random.rand() dis = (x**2+y**2)**0.5 if dis <= 1: count = count+1 PI = 4*count/total print(PI)
3.在上面的程序中我們用8000000個隨機數(shù)進行投放,這樣得到的結(jié)果會更精確一些,運行程序需要一定的時間,最終得到的結(jié)果如下
4.下面我們進行一項簡單的應(yīng)用,下圖為我在畫圖工具中隨便畫的一個圖,我們可以用蒙特卡羅方法來估算圖中黑色部分的面積。
5.上面的圖形是不規(guī)則的,我們只需知道在投放大量隨機數(shù)的情況下,隨機數(shù)在黑色部分出現(xiàn)的概率,再用總面積相乘即可估算黑色部分的面積。我們知道,黑色的rgb編碼為(0,0,0),所以需要統(tǒng)計rgb編碼為(0,0,0)時隨機數(shù)的投放概率即可。
6.代碼實現(xiàn):
from PIL import Image import numpy as np im = Image.open("C:/Users/21974/Desktop/handwrite2.PNG") total = 9000000 count = 0 defin = 0 width = im.size[0] height = im.size[1] for i in range(total): #用蒙特卡羅方法獲得估計值 x = np.random.randint(0, width-1) y = np.random.randint(0, height-1) k = im.getpixel((x, y)) if k[0]+k[1]+k[2] == 0: count += 1 print(int(width*height*count/total)) for i in range(width): #用遍歷獲得準(zhǔn)確值 for j in range(height): k = im.getpixel((i, j)) if k[0] + k[1] + k[2] == 0: defin += 1 print(defin)
上面的代碼可分為兩部分,第一個for后面是用蒙特卡羅方法獲得的面積的估計值,第二個for后面是用遍歷所有像素點的方法獲得的面積的精確值,獲得兩個輸出后進行對比。
我們在上面的程序中采用了9000000個隨機數(shù),可以看出兩個輸出結(jié)果相差并不大。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43001.html
摘要:基本編程模式里有兩個很重要的概念一般簡稱為和,在上一篇文章中基本概念解析有講到。可以說,和貫穿了的大部分生命周期,從的初始化,到數(shù)據(jù)的清洗,計算,到最后獲取,展示結(jié)果。 寫在前面 本系列是綜合了自己在學(xué)習(xí)spark過程中的理解記錄 + 對參考文章中的一些理解 + 個人實踐spark過程中的一些心得而來。寫這樣一個系列僅僅是為了梳理個人學(xué)習(xí)spark的筆記記錄,所以一切以能夠理解為主,沒...
摘要:昨天,我們在農(nóng)民自制黑科技無人駕駛拖拉機一文中提到,一位農(nóng)民通過學(xué)習(xí)的計算機網(wǎng)絡(luò)課程,成功開發(fā)出了無人駕駛拖拉機的故事。今天,我與大家分享這套課程的第二部分,也就是,課程名稱叫作計算思維及數(shù)據(jù)科學(xué)導(dǎo)論,使用的授課語言同樣是。 昨天,我們在農(nóng)民自制黑科技:無人駕駛拖拉機一文中提到,一位農(nóng)民通過學(xué)習(xí)MIT的計算機網(wǎng)絡(luò)課程6.00.1x,成功開發(fā)出了無人駕駛拖拉機的故事。今天,我與大家分享這...
摘要:蠎周刊年度最贊親俺們又來回顧又一個偉大的年份兒包去年最受歡迎的文章和項目如果你錯過了幾期就這一期不會丟失最好的嗯哼還為你和你的準(zhǔn)備了一批紀(jì)念裇從這兒獲取任何時候如果想分享好物給大家在這兒提交喜歡我們收集的任何意見建議通過來吧原文 Title: 蠎周刊 2015 年度最贊Date: 2016-01-09 Tags: Weekly,Pycoder,Zh Slug: issue-198-to...
閱讀 3174·2021-09-10 10:51
閱讀 3355·2021-08-31 09:38
閱讀 1647·2019-08-30 15:54
閱讀 3137·2019-08-29 17:22
閱讀 3219·2019-08-26 13:53
閱讀 1967·2019-08-26 11:59
閱讀 3289·2019-08-26 11:37
閱讀 3317·2019-08-26 10:47