python-圓周率的計算【random庫的應用】


上一篇:有進度條的圓周率計算

圓周率的計算

 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

求解圓周率可以采用蒙特卡羅方法,在一個正方形中撒點,根據在1/4圓內點的數量占總撒點數的比例計算圓周率值。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

請以123作為隨機數種子,獲得用戶輸入的撒點數量,編寫程序輸出圓周率的值,保留小數點后6位。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

輸入輸出示例

  輸入 輸出
示例 1
1024
3.218750
from random import seed   #調用random中函數seed()獲取隨機數種子
from random import random   #調用random中函數random()
DARTS= eval(input())    #輸入撒點數量,數越大越准
seed(123)      #獲取唯一確定的隨機數列
hits= 0.0    #開始時命中圓內部的數量
for i in range(1, DARTS+1):
    x, y= random(), random()    #產生點的隨機坐標
    dist= pow(x**2+ y**2,0.5)     #用點與圓心的距離判斷是否在圓內
    if dist<= 1.0:
        hits= hits+1
pi= 4*(hits/ DARTS)     #得到圓周率的近似值
print("{:.6f}".format(pi))   #保留小數點后6位

  

其中涉及的知識點

random庫

(1),seed(a)函數

   初始化給定的隨機數種子(a) ,得到唯一確定的隨機數列 。a = None 時默認當前系統時間 

   常與random庫中其他函數疊用,a不變時與其他函數疊用得到唯一的隨機數(舉一反三實驗復現)

(2),random()函數

   生成一個[0.0, 1.0]之間的隨機小數

(3),randint( a, b)

   生成一個[ a, b]之間的整數

(4),randrange(M , N [ ,K])

   生成一個[ M, N ]間以K為步長的隨機整數,[,K]可省,默認為1

(5),uniform( a, b)

   生成(a , b)之間隨機小數 (16.f)

  


免責聲明!

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



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