我的公平骰子模拟不会输出1到6之间的10个随机数

时间:2019-04-23 09:54:21

标签: r statistics dice

我创建了一个公平的骰子模拟,但是当我运行它时,只有一个元素存储在10个元素中。我需要全部10个元素具有1到6之间的随机数。

dice<-function(n){

a<-numeric(n)

for(m in 1:n){

b=sample(1:6, size = n, replace = TRUE)

}
if(1==b){
a[m]<-1
}

else if(2==b){
a[m]<-2
}
else if(3==b){
a[m]<-3
}
else if(4==b){
a[m]<-4
}
else if(5==b){
a[m]<-5
}
else if(6==b){
a[m]<-6
}
a
}


x<-dice(10)

我期望输出为:5361324164,但实际输出为:0000000003

1 个答案:

答案 0 :(得分:1)

我不明白为什么在足够的情况下为什么要编写这么多额外的代码:

# Throwing dice 10 times.
sample(c(1:6),10,replace = TRUE)
[1] 4 5 2 5 5 2 2 4 6 3

此处为功能:

dice <- function(n) {
  sample(c(1:6),n,replace = TRUE)
}

如果要计算发生次数,请使用表格:

table(dice(100))
 1  2  3  4  5  6 
11 19 15 12 20 23