Это может сработать (не суперэффективно, но ...)
Сначала выясните вероятности каждого исхода (P (1) = 0,75, P (2) = 0,75 * 0,25, P (3) = 0,75 * 0,25 ^ 2 ...)
cc <- cumprod(c(0.75,rep(0.25,9)))
Выберите полиномиальное отклонение с этими вероятностями (N = 1 для каждого образца)
rr <- t(rmultinom(1000,size=1,prob=cc))
Определите, какое значение вкаждая строка равна 1:
storage.mode(rr) <- "logical"
out <- apply(rr,1,which)
Результаты проверки:
tt <- table(factor(out,levels=1:10))
1 2 3 4 5 6 7 8 9 10
756 183 43 14 3 1 0 0 0 0
Возможно, есть более разумный способ установить это с точки зрения модифицированного геометрического распределения ...