Вот векторизованный способ многократно (Nrepeat = 100
) подбрасывать монету Ntoss = 10^5
раз.
Ntoss <- 10000
Nrepeat <- 100
set.seed(2018)
lst <- replicate(Nrepeat, sample(c(TRUE, FALSE), Ntoss, replace = T), simplify = F)
Выходным объектом здесь является list
с 10^5
результатами подбрасывания монеты за повторный "эксперимент" подбрасывания монеты.
Количество голов среди бросков 10^5
монет
Чтобы рассчитать количество голов среди бросков 10^5
монет, вы можете сделать
nHeads <- sapply(lst, sum)
Доля голов среди бросков 10^5
монет
Чтобы вычислить долю голов среди бросков 10^5
монет, вы можете сделать
fracHeads <- sapply(lst, function(x) sum(x) / length(x))
# [1] 0.5071 0.5027 0.5033 0.4969 0.5010 0.5010 0.5053 0.4994 0.5027 0.4974
#[11] 0.4937 0.5012 0.5018 0.5006 0.5066 0.4986 0.4987 0.5030 0.4990 0.5050
#[21] 0.4889 0.4986 0.5040 0.4933 0.5002 0.4912 0.4966 0.5046 0.4942 0.5029
#[31] 0.4908 0.5014 0.5002 0.5061 0.5013 0.5051 0.4977 0.4957 0.4990 0.5054
#[41] 0.5086 0.4994 0.4910 0.5032 0.4961 0.4928 0.5108 0.5018 0.5040 0.4973
#[51] 0.5001 0.4989 0.5069 0.5004 0.4946 0.4980 0.4970 0.4988 0.4945 0.4972
#[61] 0.5106 0.5016 0.4932 0.4989 0.4983 0.4969 0.4938 0.5063 0.4962 0.5073
#[71] 0.5020 0.4904 0.4990 0.5025 0.4990 0.4949 0.5009 0.4986 0.4959 0.4886
#[81] 0.4972 0.5055 0.5046 0.5059 0.4980 0.4993 0.4975 0.4959 0.4943 0.5077
#[91] 0.5021 0.5023 0.4977 0.5034 0.4943 0.5056 0.5019 0.5051 0.4980 0.5031
Распределение фракции головок
Мы также можем построить распределение фракций голов из 100 повторных экспериментов
library(ggplot2)
ggplot(data.frame(fracHeads = fracHeads), aes(fracHeads)) +
geom_histogram(bins = 20)
