[英]resampling in scala, the functional way
我有一个样本数组D,我想用替换统一重新采样以构造一个新的数组。 程序解决方案非常简单,但是我想知道是否有人对如何“功能方式”有一些想法? (我只是刚刚学习了Scala和函数式编程)
一个功能实现来演示我的意思:
val D = Array(0,1,2,3,4)
val R = new Random();
var ResampledD = Array[Int]();
var i = 0;
while (i < D.length) {
ResampledD = ResampledD :+ D(R.nextInt(D.length));
i = i + 1;
}
ResampledD
> res0: Array[Array[Int]] = Array(2, 2, 1, 3, 2)
Array
随播对象具有一些构建新数组的方法,而您需要的是fill
:
val ResampledD = Array.fill(D.length)(D(util.Random.nextInt(D.length)))
或使用map
val ResampledD = D map { x => D(util.Random.nextInt(D.length)) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.