2024/4/14

The-rich發表於2024-06-19
【題目描述】蒙特·卡羅方法是一種透過機率來得到問題近似解的方法,在很多領域都有重要的應用,其中就包括圓周率近似值的計問題。假設有一塊邊長為2的正方形木板,上面畫一個單位圓,然後隨意往木板上扔飛鏢,落點座標(x,y)必然在木板上(更多的時候是落在單位圓內),如果扔的次數足夠多,那麼落在單位圓內的次數除以總次數再乘以4,這個數字會無限逼近圓周率的值。這就是蒙特·卡羅發明的用於計算圓周率近似值的方法,如下圖所示。編寫程式,模擬蒙特·卡羅計算圓周率近似值的方法,輸入擲飛鏢次數,然後輸出圓周率近似值。
【練習要求】請給出原始碼程式和執行測試結果,原始碼程式要求新增必要的註釋。
【輸入格式】在一行中輸入擲飛鏢的次數。
【輸出格式】輸出採用蒙特·卡羅法模擬計算出的圓周率的值。
【輸入樣例】100000
【輸出樣例】3.13056
import random

def monte_carlo_pi(num_points):    inside_circle = 0    for _ in range(num_points):        x = random.uniform(-1, 1)        y = random.uniform(-1, 1)        if x2 + y2 <= 1:            inside_circle += 1

pi_approx = 4 * inside_circle / num_points
return pi_approx

num_points = int(input("請輸入擲飛鏢次數:"))approx_pi = monte_carlo_pi(num_points)print(f"圓周率的近似值為:{approx_pi}")

相關文章