1. 程式人生 > 其它 >python-蒙特·卡羅法計算圓周率

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

【題目描述】蒙特·卡羅方法是一種通過概率來得到問題近似解的方法,在很多領域都有重要的應用,其中就包括圓周率近似值的計問題。假設有一塊邊長為2的正方形木板,上面畫一個單位圓,然後隨意往木板上扔飛鏢,落點座標(x,y)必然在木板上(更多的時候是落在單位圓內),如果扔的次數足夠多,那麼落在單位圓內的次數除以總次數再乘以4,這個數字會無限逼近圓周率的值。這就是蒙特·卡羅發明的用於計算圓周率近似值的方法,如下圖所示。編寫程式,模擬蒙特·卡羅計算圓周率近似值的方法,輸入擲飛鏢次數,然後輸出圓周率近似值。

【練習要求】請給出原始碼程式和執行測試結果,原始碼程式要求新增必要的註釋。

【輸入格式】在一行中輸入擲飛鏢的次數。

【輸出格式】輸出採用蒙特·卡羅法模擬計算出的圓周率的值。

【輸入樣例】100000

【輸出樣例】3.13056

分析過程:

程式碼:

from random import random

count = int(input())
num = 0
for i in range(count):
    x = random()  # 生成0-1的隨機數
    y = random()
    if pow(x * x + y * y, 0.5) <= 1:  # 四分之一正方形和圓,這時邊長和圓的半徑都為1,計算兩點之間距離是否小於等於1
        num += 1

print(4 * (num / count))  #
計算出圓周率

 

 

 

 

參考: python語言程式設計——蒙特·卡羅方法求圓周率