用蒙特卡洛方法计算派-python和R语言
生活随笔
收集整理的這篇文章主要介紹了
用蒙特卡洛方法计算派-python和R语言
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
用蒙特卡洛方法算pi-基于python和R語言
最近follow了MOOC上一門python課,開始學(xué)Python。同時,買來了概率論與數(shù)理統(tǒng)計,準備自學(xué)一下統(tǒng)計。(因為被鄙視過不是統(tǒng)計專業(yè)卻想搞數(shù)據(jù)分析)
有趣的是書里面有一塊講蒲豐投針計算Pi,這是一種隨機模擬法,也就是蒙特卡洛法。蒲豐投針之于我太難,暫時沒想到怎么用計算機模擬這一過程。
python課中,老師也提到用隨機模擬法,也就是蒙特卡洛法(MonteCarlo),用計算機模擬幾千次實驗,計算pi的近似值。好巧。
就拿python課中的方法,來近似計算pi,分別用python和R實現(xiàn)一下。
至于實驗是怎樣的,截圖老師的PPT。
我用的是python 3
python代碼:
from random import random from math import sqrt from time import clock darts=2**22 hist=0 clock() for i in range(1,darts):x,y=random(),random()dist=sqrt(x**2+y**2)if dist<=1.0:hist=hist+1 pi=4*(hist/darts) print('pi is %s'%pi) print('elaspe is %ss'%clock())python運行結(jié)果:
pi is 3.143444061279297 elaspe is 85.991785R 代碼:
#蒙特卡洛方法求pi hist <- 0 darts <- 2^22 start <-proc.time() for (i in 1:darts){x <- runif(1);y <- runif(1)if(sqrt(x^2+y^2)>1) nexthist=hist+1 } pi <- 4*hist/darts proc.time()-start print(paste0('pi is ',pi))R運行結(jié)果:
> proc.time()-start用戶 系統(tǒng) 流逝 31.537 2.477 34.153 > print(paste0('pi is ',pi)) [1] "pi is 3.14076137542725"
總結(jié):R和python都挺好用的,下一步準備試著用python寫點小爬蟲程序。
轉(zhuǎn)載于:https://www.cnblogs.com/litao1105/p/4903079.html
總結(jié)
以上是生活随笔為你收集整理的用蒙特卡洛方法计算派-python和R语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: How to change the te
- 下一篇: python学习day2:类与对象