python模擬蒙特·卡羅法計算圓周率


蒙特·卡羅方法是一種通過概率來得到問題近似解的方法,在很多領域都有重要的應用,其中就包括圓周率近似值的計問題。

假設有一塊邊長為2的正方形木板,上面畫一個單位圓,然后隨意往木板上扔飛鏢,落點坐標(x,y)必然在木板上(更多的時候是落在單位圓內),

如果扔的次數足夠多,那么落在單位圓內的次數除以總次數再乘以4,這個數字會無限逼近圓周率的值。

這就是蒙特·卡羅發明的用於計算圓周率近似值的方法。

編寫程序,模擬蒙特·卡羅計算圓周率近似值的方法,輸入擲飛鏢次數,然后輸出圓周率近似值。

 

import random,math
s = 1 * 1
c = int(input())
hit = c
hits = 0
while hit != 0 :
    hit = hit - 1
    x = random.random()
    y = random.random()
    z = math.sqrt(x**2+y**2)
    if z <= 1:
        hits = hits + 1
PI = 4 * hits/c
print(PI)

這段程序主要運用通過計算落點的坐標與原點的距離來確定鏢是否在中在圓內

當運行的次數足夠大,也就會越來越逼近圓周率

 

另外再說一點就是python中的random()函數

random()函數的調用方法如下

import random

x = random.random()

返回的值在(0,1]之間

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM