Моя симуляция честных кубиков не выдает 10 случайных чисел от 1 до 6 - PullRequest
0 голосов
/ 23 апреля 2019

Я создал симуляцию честной игры в кости, однако, когда я ее запускаю, из 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 Ответ

1 голос
/ 23 апреля 2019

Я не понимаю, почему вы пишете так много дополнительного кода, когда этого достаточно:

# 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 
...