Python——随机法(蒙特卡罗方法)计算圆周率
生活随笔
收集整理的這篇文章主要介紹了
Python——随机法(蒙特卡罗方法)计算圆周率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本概念
蒙特卡羅方法:蒙特卡羅方法于20世紀40年代美國在第二次世界大戰中研制原子彈的“曼哈頓計劃”計劃的成員S.M.烏拉姆和J.馮·諾伊曼首先提出。數學家馮·諾伊曼用馳名世界的賭城—摩納哥的Monte Carlo—來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國數學家布豐(Georges Louis Leclere de Buffon,1707—1788)提出用投針實驗的方法求圓周率π。這被認為是蒙特卡羅方法的起源。
算法思想
?當所求解問題是某種隨機事件出現的概率,或者是某個隨機變量的期望值時,通過某種"實驗"的方法,以這種事件出現的頻率估計這一隨機事件的概率,或者得到這個隨機變量的某些數字特征,并將其作為問題的解。
問題分析?
通過多次撒點,模擬概率,求面積,而是否在圓內,可以通過到圓心的距離求解,利用計算機的運算速度,可以很快求出圓周率。
撒點次數越多,圓周率就越準確。?
源代碼?
#CalPI.py from random import random from math import sqrt from time import process_time DARTS=1000 hits=0.0 process_time() for i in range(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)if(dist<=1.0):hits=hits+1 pi=4*(hits/DARTS) print("PI值是{}.".format(pi)) print("運行時間是:{:.5f}s".format(process_time()))10e6次
10e7次?
10e8次
10e9次?
10e10次
?實在跑不了,Python太慢了
參考文章
https://baike.so.com/doc/5989374-6202341.html
https://blog.csdn.net/q1694222672/article/details/81985391
總結
以上是生活随笔為你收集整理的Python——随机法(蒙特卡罗方法)计算圆周率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python——文本进度条
- 下一篇: Python——七段数码管绘制