【題目描述】蒙特·卡羅方法是一種通過概率來得到問題近似解的方法,在很多領域都有重要的應用,其中就包括圓周率近似值的計問題。假設有一塊邊長為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)) # 計算出圓周率