1. 程式人生 > >R語言while迴圈計算圓周率

R語言while迴圈計算圓周率

R語言while迴圈計算圓周率

原理說明

計算圓周率的方法很多,在這裡我們使用概率的方法來計算圓周率(蒙特卡洛法)。
假設有一個正方形,以其一個頂點為圓心,正方形的邊長為半徑,畫1/4圓。則可以在正方形中隨機產生足夠多個點,點落在圓內的概率就是圓面積和正方形面積的比值,所以落在圓內的點的個數比上所有的點的個數(在正方形內的點)就等於落在圓內的概率。再按照面積公式。即可計算PI

程式碼展示

setpi <- function(n){
  cnt<-0
  d<-n
  while(n>=1){
    x<-runif(1,0,1);y<-runif(1,0,1)
    if(x^2+y^2 <= 1)
      cnt<-cnt+1
    n<-n-1
  }
  return(4 * cnt / d)
}
setpi(10000)

計算結果

> setpi(100000)
[1] 3.14328