如何生成具有不同长度的随机数,例如3到7位数字之间的概率相等。
最后,我希望代码提供3到7位数字(均等概率),该数字由0到9之间的随机数组成。
我想出了这个解决方案,但由于必须生成数据帧,因此觉得它过于复杂。
class Dog:Animal{
constructor(name:String):super(name)
internal constructor(message:InputStream):super(message)
}
有没有更优雅的解决方案?
答案 0 :(得分:3)
根据您提供的信息,我想出了另一个可能更接近您想要的解决方案。最后,它包括以下步骤:
len
,以确定输出的长度len
个数字执行此操作的代码
(len <- runif(1, 3, 7) %/% 1)
(s <- runif(len, 0, 9) %/% 1)
cat(s, sep = "")
我以前提供了这个答案;不过,它不符合要求,因为OP提供了更多详细信息后就清楚了。
难道不是要产生一个介于100和9999999之间的随机数吗? 如果是这样,这是您想要的吗?
runif(5, 100, 9999999) %/% 1
您可能还可以使用四舍五入,但始终必须四舍五入。
输出:
[1] 4531543 9411580 2195906 3510185 1129009
答案 1 :(得分:2)
您可以使用向量化方法,并直接在指数的允许范围内采样:
pick.nums <- function(n){floor(10^(sample(3:7,n,replace = TRUE))*runif(n))}
例如,
> set.seed(123)
> pick.nums(5)
[1] 455 528105 89241 5514350 4566147