亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

1.首先我們做一個(gè)簡(jiǎn)單的圓周率的近似計(jì)算,在這個(gè)過程中我們要用到隨機(jī)數(shù),因此需要先使用import numpy as np導(dǎo)入numpy庫。

2.代碼實(shí)現(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個(gè)隨機(jī)數(shù)進(jìn)行投放,這樣得到的結(jié)果會(huì)更精確一些,運(yùn)行程序需要一定的時(shí)間,最終得到的結(jié)果如下

4.下面我們進(jìn)行一項(xiàng)簡(jiǎn)單的應(yīng)用,下圖為我在畫圖工具中隨便畫的一個(gè)圖,我們可以用蒙特卡羅方法來估算圖中黑色部分的面積。

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

6.代碼實(shí)現(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): #用蒙特卡羅方法獲得估計(jì)值
 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)

上面的代碼可分為兩部分,第一個(gè)for后面是用蒙特卡羅方法獲得的面積的估計(jì)值,第二個(gè)for后面是用遍歷所有像素點(diǎn)的方法獲得的面積的精確值,獲得兩個(gè)輸出后進(jìn)行對(duì)比。

我們?cè)谏厦娴某绦蛑胁捎昧?000000個(gè)隨機(jī)數(shù),可以看出兩個(gè)輸出結(jié)果相差并不大。

相關(guān)文章

  • 詳解python 中in 的 用法

    詳解python 中in 的 用法

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

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

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

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

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

    Python如何重新加載模塊

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

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

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

    python進(jìn)階學(xué)習(xí)實(shí)時(shí)目標(biāo)跟蹤示例詳解

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

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

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

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

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

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

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

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

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

最新評(píng)論