最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)蒙特卡羅方法教程

 更新時間:2019年01月28日 08:54:07   投稿:laozhang  
在本篇文章里小編給大家分享了關(guān)于python實現(xiàn)蒙特卡羅方法和知識點,有需要的朋友們學(xué)習(xí)下。

蒙特卡羅方法是一種統(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é)果相差并不大。

相關(guān)文章

  • python 獲取et和excel的版本號

    python 獲取et和excel的版本號

    在進行OA開發(fā)過程中,經(jīng)常會用到當(dāng)前辦公軟件的版本號,在python可以通過如下的方法獲取。
    2009-04-04
  • Python中正反斜杠(‘/’和‘\’)的意義與用法

    Python中正反斜杠(‘/’和‘\’)的意義與用法

    這篇文章主要給大家介紹了關(guān)于Python中正反斜杠(‘/’和‘\’)的意義與使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python實現(xiàn)剪切功能

    python實現(xiàn)剪切功能

    這篇文章主要為大家詳細(xì)介紹了一段python代碼編寫實現(xiàn)的剪切功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

    Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

    這篇文章主要介紹了Python 利用Entrez庫篩選下載PubMed文獻摘要的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python光學(xué)仿真學(xué)習(xí)衍射算法初步理解

    Python光學(xué)仿真學(xué)習(xí)衍射算法初步理解

    這篇文章主要為大家介紹了Python光學(xué)仿真學(xué)習(xí)中對衍射算法的初步理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 如何用python寫個模板引擎

    如何用python寫個模板引擎

    這篇文章主要介紹了如何用python寫個模板引擎,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • django admin實現(xiàn)動態(tài)多選框表單的示例代碼

    django admin實現(xiàn)動態(tài)多選框表單的示例代碼

    借助django-admin,可以快速得到CRUD界面,但若需要創(chuàng)建多選標(biāo)簽字段時,需要對表單進行調(diào)整,本文通過示例代碼給大家介紹django admin多選框表單的實現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Python實現(xiàn)線性插值和三次樣條插值的示例代碼

    Python實現(xiàn)線性插值和三次樣條插值的示例代碼

    這篇文章主要介紹了Python實現(xiàn)線性插值和三次樣條插值的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python ATM功能實現(xiàn)代碼實例

    Python ATM功能實現(xiàn)代碼實例

    這篇文章主要介紹了Python ATM功能實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 將django項目部署到centos的踩坑實戰(zhàn)

    將django項目部署到centos的踩坑實戰(zhàn)

    Django部署到Cenos需要安裝大量的依賴包, 有很多坑需要踩,這篇文章主要給大家介紹了關(guān)于將django項目部署到centos踩坑的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評論

克什克腾旗| 绥棱县| 大兴区| 宽城| 关岭| 大竹县| 全椒县| 深水埗区| 萨嘎县| 临汾市| 宜城市| 玛多县| 横峰县| 宜州市| 揭西县| 阳西县| 固始县| 贵南县| 唐河县| 辉县市| 启东市| 临清市| 临潭县| 离岛区| 平远县| 黑河市| 鹤庆县| 天水市| 哈巴河县| 潞西市| 原平市| 夏邑县| 板桥市| 龙南县| 吉林市| 南部县| 苍山县| 深圳市| 华亭县| 霸州市| 棋牌|