Python實例1:圓周率的計算(蒙特卡羅方法)

2021-01-19 大學生的早讀課
圓周率的計算



    正方形內部有一個內切圓,則正方形和內切圓的面積之比為:(2r)^2/Πr^2 = 4/Π


    因此,圓周率的計算問題轉化為計算正方形的面積和其內切圓的面積的問題。



方法

基本思路


結果

以下分別為枚舉點1000,10000,100000,10000000的結果。



代碼與效果

import randomimport mathimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.patches import Circlen = 1000cnt = 0r = 1.0a,b = 0.0,0.0fig = plt.figure(figsize = (12,12))ax = fig.add_subplot(1,1,1)while n > 0:    n = n - 1    x = random.uniform(-1,1)    y = random.uniform(-1,1)    plt.scatter(x,y,marker='.',s = 10,alpha = 0.5)    if pow(x,2) + pow(y,2) <= 1:        cnt= cnt + 1circle = Circle(xy = (a,b),radius = r, alpha = 0.5 ,fill=False,edgecolor='r')rectangle = plt.Rectangle((-1,-1),2,2,fill=False,edgecolor='black', linewidth=2)ax.add_patch(circle)ax.add_patch(rectangle)plt.grid()pi = 4 * cnt / 1000print("pi=" + str(pi))

每天半小時,Python再也不是從入門到放棄啦!


相關焦點

  • Python語言程序設計筆記——第四周圓周率計算,質數求和
    圓周率計算方法:近似公式,蒙特卡羅方法1.> 1/(8*k+5) – 1/(8*k+6))print("圓周率值是: {}".format(pi))pi = 0N = 100for k in range(N) :pi += 1/pow(16,
  • 蒙特卡羅方法入門
    一、概述 蒙特卡羅方法是一種計算方法。原理是通過大量隨機樣本,去了解一個系統,進而得到所要計算的值。它非常強大和靈活,又相當簡單易懂,很容易實現。對於許多問題來說,它往往是最簡單的計算方法,有時甚至是唯一可行的方法。
  • 蒙特卡羅方法及應用
    隨著現代計算機技術的飛速發展,蒙特卡羅方法已經在原子彈工程的科學研究中發揮了極其重要的作用,並正在日益廣泛地應用於物理工程的各個方面,如氣體放電中的粒子輸運過程等。本文介紹蒙特卡羅方法的基本原理及其在計算物理中的應用。1 蒙特卡羅方法的基本原理就數學特性而言,蒙特卡羅方法的發展可以追溯到18世紀著名的蒲豐問題。
  • 人工智慧之蒙特卡羅方法(MCM)
    數學家馮·諾伊曼用馳名世界的賭城—摩納哥的MonteCarlo—來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國數學家布豐(Georges Louis Leclere de Buffon)提出用投針實驗的方法求圓周率π。這被認為是蒙特卡羅方法的起源。
  • 圓周率怎麼玩?
    蒙特卡羅方法又稱統計模擬法、隨機抽樣技術,是一種隨機模擬方法,以概率和統計理論方法為基礎的一種計算方法,是使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。將所求解的問題同一定的概率模型相聯繫,用電子計算機實現統計模擬或抽樣,以獲得問題的近似解。為象徵性地表明這一方法的概率統計特徵,故借用賭城蒙特卡羅命名。
  • 蒙特卡羅模擬法
    蒙特卡羅模擬法蒙特卡羅模擬法是一種使用隨機數和概率來解決問題的計算方法,它又稱隨機抽樣或統計試驗法,整體思路是(模擬——抽樣——估值),工作原理是不斷抽樣、逐漸逼近。通俗說就是建立一個模型用來模擬某事件,然後不斷隨機取樣,進行很多次實驗後,得出一個接近真實值的估值。
  • 用Python完成帶進度條的圓周率計算
    一、圓周率π的簡介   圓周率用希臘字母 π(讀作pài)表示,是一個常數(約等於3.141592654),是代表圓周長和直徑的比值。它是一個即無限不循環小數,在日常生活中,通常都用3.14代表圓周率去進行近似計算。
  • 蒙特卡羅方法-布豐投針試驗的概率
    總數2212與相交數704的比值為3.142—也就是圓周率π的近似值!」大家都表示很神奇:這是為什麼呢?布豐投針實驗是第一個用幾何形式表達概率問題的例子,值得一提的是,他採用的方法是設計一個適當的試驗,這個試驗是以概率為原理的,而這個概率的數值與我們感興趣的一個量(如)又有關,於是就利用試驗結果來估計這個量。
  • 蒙特卡洛模擬方法
    在本文中您可以學習到以下幾點知識蒙特卡洛定積分算法原理講解(公式篇)python實現算法(代碼篇)蒙特卡洛算法起源       蒙特卡羅方法於20世紀40年代美國在第二次世界大戰中研製原子彈的「曼哈頓計劃」計劃的成員S.M.烏拉姆和J.馮·諾伊曼首先提出。
  • 歷史模擬法、蒙特卡羅的模擬法計算VaR和ES值!
    歷史模擬法、蒙特卡羅的模擬法計算VaR和ES值! 一、知識點介紹1.1 歷史模擬法我們在之前有用到Delta-Normal的GARCH和RiskMetrics方法來計算aR和ES,假設的是殘差滿足正態分布,對殘差進行二次相關序列的建模並擬合殘差,能夠得到未來的預測值。
  • 偽·從零開始學算法 - 2.3 求圓周率
    據說遠古時期的人們根據經驗以3作為圓周率的值(「徑一周三」),這個值至今也能夠用於一些對精度要求不高的場合(如手工做木桶)。但是,對於天體運行和面積測量等方面,3這個值未免太粗略。人們對於它的計算絕不僅限於此。古埃及、古巴比倫、古印度、古代中國的遺蹟中都能夠找到關於圓周率的較精確的值,它們都能夠達到3.1這個值。
  • python由圓半徑計算圓的周長和面積
    要計算圓的周長和面積,自然而然就要用到圓周率π,在我國,祖衝之在劉徽開創的探索圓周率的精確方法的基礎上,首次將「圓周率」精算到小數第七位,即在3.1415926和3.1415927之間,他提出的「祖率」對數學的研究有重大貢獻。直到16世紀,阿拉伯數學家阿爾·卡西才打破了這一紀錄。
  • Python中判斷數字是否為質數的實例講解
    在本篇文章裡小編給大家分享了關於python中判斷數字是否為質數的實例講解內容,有興趣的朋友們可以學習下。
  • 中國古代圓周率π的計算史:割圓術的計算方法
    本課程介紹中國古代圓周率的計算史。首先從劉徽割圓術講起,通過介紹割圓術的算法思想和計算方法,以及劉徽不等式的證明,探尋其中所蘊含的對現代數學影響巨大的數學思想。接著介紹了祖衝之對於圓周率的高效運算和他所得到的的高精度結果。由於記載著他的方法的《綴術》失傳,後世學者為探索其可以精確的計算圓周率結果的方法,做出了各種各樣的嘗試,本課程也一一進行了簡單介紹。
  • 雲計算開發學習實例:Python3 計算 n 個自然數的立方和
    計算公式 13 + 23 + 33 + 43 + …….+ n3實現要求:輸入 : n = 5輸出 : 225公式 : 13+ 23 + 33 + 43 + 53 = 225輸入 : n = 7輸入 : 784公式 : 13 + 23 + 33 + 43 + 53 + 63 + 73 = 784以上實例輸出結果為:程序1至
  • python計算平方和平方根的方法
    python如何計算平方和平方根在python中,有多種方法可以求一個數的平方和平方根,可以使用:內置模塊、表達式、內置函數等實現。1.使用內置模塊mathimport mathmath.pow(4,2) 求4的平方math.sqrt(16) 求16的開平方2.使用表達式法4 ** 2 計算4的平方16 ** 0.5 計算16的開平方3.使用內置函數pow(4,2) 計算4的平方
  • 圓周率計算到小數點後 31.4 萬億位
    國際圓周率日這天,谷歌工程師成功將圓周率π計算到小數點後31.4萬億位數字,比上一次記錄多了9萬億位!昨天是 3 月 14 日,也是國際圓周率日。在這天,一位谷歌工程師創造了一項世界紀錄!12 歲時,她就試過自己下載軟體,試圖計算圓周率 π。Iwao 在谷歌雲官方博客上詳細介紹了這次的計算過程,並且,所計算出來的 31.4 萬億個數字也已經成為開放資源可供下載,歡迎所有想用這些數字做實驗的人下載使用。自古巴比倫人以來,人們就沒有停止過計算圓周率 π。
  • C語言基礎:以實例跟我學while循環結構,計算圓周率pi
    循環結構是程式語言中的一種基本程序結構,C語言中有兩種表示方法,分別可通過for循環和while循環結構實現。上篇文章已經講了for循環的使用方法,詳細請參考:這次通過一個計算圓周率pi的例子給大家介紹C語言中while循環結構的編程方法。
  • 圓周率π的計算曆程及各種腦洞大開的估計方法
    阿基米德求圓周率的更精確近似值的方法,體現在他的一篇論文《圓的測定》之中。在這一書中,阿基米德第一次創用上、下界來確定 π 的近似值,他用幾何方法證明了「圓周長與圓直徑之比小於 3+(1/7) 而大於 3 + (10/71) 」,他還提供了誤差的估計。重要的是,這種方法從理論上而言,能夠求得圓周率的更準確的值。
  • 中國古代圓周率π的計算史:祖衝之和圓周率的高效計算
    本課程介紹中國古代圓周率的計算史。首先從劉徽割圓術講起,通過介紹割圓術的算法思想和計算方法,以及劉徽不等式的證明,探尋其中所蘊含的對現代數學影響巨大的數學思想。接著介紹了祖衝之對於圓周率的高效運算和他所得到的的高精度結果。由於記載著他的方法的《綴術》失傳,後世學者為探索其可以精確的計算圓周率結果的方法,做出了各種各樣的嘗試,本課程也一一進行了簡單介紹。