国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

蒙特卡羅方法(python實現)

ranwu / 1286人閱讀

摘要:代碼實現在上面的程序中我們用個隨機數進行投放,這樣得到的結果會更精確一些,運行程序需要一定的時間,最終得到的結果如下下面我們進行一項簡單的應用,下圖為我在畫圖工具中隨便畫的一個圖,我們可以用蒙特卡羅方法來估算圖中黑色部分的面積。

蒙特卡羅方法是一種統計模擬方法,由馮·諾依曼和烏拉姆提出,在大量的隨機數下,根據概率估計結果,隨機數據越多,獲得的結果越精確。下面我們將用python實現蒙特卡羅方法。

1.首先我們做一個簡單的圓周率的近似計算,在這個過程中我們要用到隨機數,因此需要先使用import numpy as np導入numpy庫。

2.代碼實現:

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個隨機數進行投放,這樣得到的結果會更精確一些,運行程序需要一定的時間,最終得到的結果如下

4.下面我們進行一項簡單的應用,下圖為我在畫圖工具中隨便畫的一個圖,我們可以用蒙特卡羅方法來估算圖中黑色部分的面積。

5.上面的圖形是不規則的,我們只需知道在投放大量隨機數的情況下,隨機數在黑色部分出現的概率,再用總面積相乘即可估算黑色部分的面積。我們知道,黑色的rgb編碼為(0,0,0),所以需要統計rgb編碼為(0,0,0)時隨機數的投放概率即可。

6.代碼實現:

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):    #用遍歷獲得準確值
    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個隨機數,可以看出兩個輸出結果相差并不大。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43001.html

相關文章

  • 『 Spark 』3. spark 編程模式

    摘要:基本編程模式里有兩個很重要的概念一般簡稱為和,在上一篇文章中基本概念解析有講到。可以說,和貫穿了的大部分生命周期,從的初始化,到數據的清洗,計算,到最后獲取,展示結果。 寫在前面 本系列是綜合了自己在學習spark過程中的理解記錄 + 對參考文章中的一些理解 + 個人實踐spark過程中的一些心得而來。寫這樣一個系列僅僅是為了梳理個人學習spark的筆記記錄,所以一切以能夠理解為主,沒...

    Donald 評論0 收藏0
  • MIT經典計算機課程:計算思維及數據科學導論

    摘要:昨天,我們在農民自制黑科技無人駕駛拖拉機一文中提到,一位農民通過學習的計算機網絡課程,成功開發出了無人駕駛拖拉機的故事。今天,我與大家分享這套課程的第二部分,也就是,課程名稱叫作計算思維及數據科學導論,使用的授課語言同樣是。 昨天,我們在農民自制黑科技:無人駕駛拖拉機一文中提到,一位農民通過學習MIT的計算機網絡課程6.00.1x,成功開發出了無人駕駛拖拉機的故事。今天,我與大家分享這...

    anonymoussf 評論0 收藏0
  • 蠎周刊 2015 年度最贊

    摘要:蠎周刊年度最贊親俺們又來回顧又一個偉大的年份兒包去年最受歡迎的文章和項目如果你錯過了幾期就這一期不會丟失最好的嗯哼還為你和你的準備了一批紀念裇從這兒獲取任何時候如果想分享好物給大家在這兒提交喜歡我們收集的任何意見建議通過來吧原文 Title: 蠎周刊 2015 年度最贊Date: 2016-01-09 Tags: Weekly,Pycoder,Zh Slug: issue-198-to...

    young.li 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<