Создание случайных чисел из множества - PullRequest
1 голос
/ 09 октября 2019

Я хочу сделать функцию k (n), которая рисует 'n' раз из набора {0,1,2,3,4,5,6,7,8,9,10} (одинаковая вероятность для каждогоодин), а затем он записывает каждое число, если это число нечетное или четное. Например:

k (3) рисует числа 1,6,8, а затем моя функция печатает, что:

1 нечетно

6 является четным

8 четное

Моя работа на данный момент:

О проверке функции нечетных чисел:

k=function(x)
if((x %% 2) == 0) {
  print(paste(x,"is Even"))
} else {
  print(paste(x,"is Odd"))
}

И у меня есть следующая идеядля следующих задач: я нарисую n раз из множества {0,1,2,3,4,5,6,7,8,9,10}, получая список длиной n. Тогда я буду использовать функцию Саппи для этого списка.

Но у меня проблема с рисованием n раз из набора выше. Не могли бы вы помочь мне с этой проблемой и не могли бы вы упомянуть, если моя идея верна?

1 Ответ

1 голос
/ 09 октября 2019

Вы не показываете, в чем проблема или как вы рисуете случайные числа, но я думаю, вы используете sample(). Прочитайте страницу руководства для функции. Поведение по умолчанию - выбор БЕЗ ЗАМЕНЫ, например:

sample(1:5, 5)
# [1] 2 5 3 1 4
sample(1:5, 6)
# Error in sample.int(length(x), size, replace, prob) : 
#   cannot take a sample larger than the population when 'replace = FALSE'

Вам необходимо нарисовать образцы с заменой, например:

set <- 0:10
set.seed(42)
x <- sample(set, 5, replace=TRUE)
OE <- ifelse(x %% 2 == 0, "Even", "Odd")
cat("\n", paste(x, "is", OE, "\n"))
# 
#  0 is Even 
#  4 is Even 
#  0 is Even 
#  8 is Even 
#  9 is Odd 

Обратите внимание, что теперь 0 появляется дважды. Так как для случайного числа задано значение 42, вы должны получить те же значения, что и здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...