有人可以建议我使用随机(整数)数生成算法,以便给定间隔时,绝对保证可以覆盖所有给定间隔(即o缺少数字)吗?没有其他限制,例如没有数字的唯一性,没有关于分布的假设等等...
想法如下:
myRandom(1, 4)
输出如下序列:
1, 4, 3, 3, 1, 3, 1, 4, 1, 3, 2
答案 0 :(得分:1)
您必须以某种方式告诉您的函数您想要多少个元素,例如n
。如果知道(或者您有一些合理的默认值),则可以使用:
n - sequence_length
值使用4 * (to - from)
作为n
的默认值的R中的示例代码:
myRandom <- function(from, to, n = 4 * (to - from)) {
values <- seq.int(from, to)
selection <- sample(values, n - length(values), replace = TRUE)
values <- c(values, selection)
sample(values)
}
myRandom(1, 4)
#> [1] 1 4 3 3 3 4 4 2 3 2 1 2
由reprex package(v0.3.0)于2019-07-09创建