日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用蒙特卡罗方法实现圆周率的计算

發布時間:2024/1/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用蒙特卡罗方法实现圆周率的计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用蒙特卡羅方法實現圓周率的計算

要求(以下分析結果要在實驗報告上體現):

  • 根據所得到PI值的精確度(前后兩次PI值的差,小于0.0001)來確定是否終止實驗。
  • 對比不同精確度(0.01, 0.001, 0.0001, 0.00001, 0.000001)要求下,DARTS的數值。
  • 用while循環來實現(記錄代碼或者代碼截圖)。
  • 在精確度為0.01的實驗里,記錄前100次的PI值,觀察PI值的差異。
  • 1.1

    ?對比不同精確度(0.01, 0.001, 0.0001, 0.00001, 0.000001)要求下,DARTS的數值。

    精確度為0.01時

    from random import random from math import sqrt import timeDARTS=1000 acc=0.01 PI=0for a in range(100):while 1:pi=0hits=0i=1while 1<=i<DARTS+1:x,y=random(),random()dist=sqrt(x**2+y**2)if dist<=1.0:hits=hits+1i+=1pi=4*(hits/DARTS)if abs(pi-PI)>acc:PI=piDARTS+=1else:breakprint("精確度={},PI={},DARTS={}".format(acc,PI,DARTS))

    精確度為0.001時

    把acc=0.01改為acc=0.001即可

    1.2

    在精確度為0.01的實驗里,記錄前100次的PI值,觀察PI值的差異

    from random import random from math import sqrt import timeDARTS=3000 acc=0.01 PI=3.141592653589793 for b in range(100):while 1:pi=0hits=0i=1while 1<=i<DARTS+1:x,y=random(),random()dist=sqrt(x**2+y**2)if dist<=1.0:hits=hits+1i+=1pi=4*(hits/DARTS)if abs(pi-PI)>acc:PI=pielse:breakprint("PI({})值是{}".format(b,PI),end='')

    總結

    以上是生活随笔為你收集整理的用蒙特卡罗方法实现圆周率的计算的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。