裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ダメ出し:Rで円周率計算

2011年11月02日 | ブログラミング

entertainment-lab
Rで円周率計算
http://entertainment-lab.blogspot.com/2011/06/r.html

> system.time({
+ set.seed(1)
+ points.num <- 100000
+ coords <- matrix(runif(2*points.num),ncol=2)
+ dist.from.origin <- apply(coords,1,function(x){sqrt(sum(x^2))})
+ myPI <- sum(dist.from.origin<1)/points.num*4
+ myPI
+ })
   ユーザ   システム       経過 
     0.944      0.026      0.966

rowSums, mean を使う。sqrt は不要。余計なことをしなければ速度は上がる。

> system.time({
+ set.seed(1)
+ points.num <- 100000
+ coords <- matrix(runif(2*points.num),ncol=2)
+ myPI <- mean(rowSums(coords^2) < 1)*4
+ myPI
+ })
   ユーザ   システム       経過 
     0.011      0.001      0.014

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ダメ出し:ryamadaのRソース... | トップ | C++ コードをインラインで R ... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事