「高校数学でわかる統計学」の「第1章 サイは投げられた!(期待値と分散)」 において,
乱数は纏めて発生させる。そうすれば for ループを使う必要もない。
両方併せると,実行時間に大きな違いが出る(もっとも,100000 × 2 個発生させて 1 秒なんだから,時間が問題なのではない(
> system.time({
+ n <- 100000
+ x <- numeric(n)
+ for (i in 1:n) {
+ x[i] <- sum(sample(x=1:6, size=2, replace=TRUE, prob=rep(1, 6)))
+ }
+ barplot(table(x) / n, ylim=c(0, 0.2))
+ })
ユーザ システム 経過
1.302 0.017 1.318
> system.time({
+ n <- 100000
+ d <- matrix(sample(1:6, 2*n, replace=TRUE), 2)
+ x <- colSums(d)
+ barplot(table(x)/n, ylim=c(0, 0.2))
+ })
ユーザ システム 経過
0.128 0.003 0.136
最新の画像[もっと見る]
-
算額(その2057) 3時間前
-
算額(その2056) 18時間前
-
算額(その2055) 18時間前
-
算額(その2054) 24時間前
-
算額(その2053) 1日前
-
算額(その2052) 1日前
-
算額(その2051) 1日前
-
算額(その2051) 1日前
-
算額(その2050) 2日前
-
算額(その2049) 4日前
※コメント投稿者のブログIDはブログ作成者のみに通知されます