欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1.首先我們做一個簡單的圓周率的近似計算,在這個過程中我們要用到隨機數(shù),因此需要先使用import numpy as np導入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): #用遍歷獲得準確值
 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 中in 的 用法

    詳解python 中in 的 用法

    in在Python中是操作符,具體來說是成員操作符。這篇文章主要介紹了python 中in 的 用法,需要的朋友可以參考下
    2019-12-12
  • Python大批量寫入數(shù)據(jù)(百萬級別)的方法

    Python大批量寫入數(shù)據(jù)(百萬級別)的方法

    這篇文章主要給大家介紹了關(guān)于Python大批量寫入數(shù)據(jù)(百萬級別)的相關(guān)資料,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)的需求,文中給出了詳細的示例代碼,需要的朋友可以參考下
    2023-07-07
  • 一行Python代碼實現(xiàn)為圖片上版權(quán)

    一行Python代碼實現(xiàn)為圖片上版權(quán)

    不知道大家會不會遇到這樣的情況,自己辛辛苦苦整理的攻略,分享給自己的一些朋友,結(jié)果分享有人堂而皇之地拿著這份攻略圖片去引流,并聲稱是自己整理的,真是豈有此理!本文就來用Python實現(xiàn)為圖片上版權(quán),需要的可以參考一下
    2023-01-01
  • Python如何重新加載模塊

    Python如何重新加載模塊

    這篇文章主要介紹了Python如何重新加載模塊,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python字典中的值求和兩種方法

    Python字典中的值求和兩種方法

    在Python中字典是一種無序的數(shù)據(jù)結(jié)構(gòu),它由一系列鍵和對應(yīng)的值組成,有時候我們需要對字典中的鍵對應(yīng)的值進行求和操作,這篇文章主要給大家介紹了關(guān)于Python字典中值求和兩種方法的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • python進階學習實時目標跟蹤示例詳解

    python進階學習實時目標跟蹤示例詳解

    這篇文章主要為大家介紹了python進階學習實時目標跟蹤示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • django創(chuàng)建css文件夾的具體方法

    django創(chuàng)建css文件夾的具體方法

    在本文里小編給大家總結(jié)的是關(guān)于django創(chuàng)建css文件夾的具體方法,對此有需要的朋友們參考下吧。
    2020-07-07
  • Python爬蟲將爬取的圖片寫入world文檔的方法

    Python爬蟲將爬取的圖片寫入world文檔的方法

    今天小編就為大家分享一篇Python爬蟲將爬取的圖片寫入world文檔的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python與C互相調(diào)用的方法詳解

    python與C互相調(diào)用的方法詳解

    這篇文章主要給大家介紹了關(guān)于python與C互相調(diào)用方法的相關(guān)資料,文中通過示例代碼詳細介紹了動用的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-07-07
  • Python實現(xiàn)字符串中某個字母的替代功能

    Python實現(xiàn)字符串中某個字母的替代功能

    小編想實現(xiàn)這樣一個功能:將輸入字符串中的字母 “i” 變成字母 “p”。想著很簡單,怎么實現(xiàn)呢?下面小編給大家?guī)砹薖ython實現(xiàn)字符串中某個字母的替代功能,感興趣的朋友一起看看吧
    2019-10-10

最新評論