kid*_*ose 1 functional-programming scala resampling
我有一个样本数组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)
Run Code Online (Sandbox Code Playgroud)
该Array同伴对象有一些方法来建立新的数组,你需要的是fill:
val ResampledD = Array.fill(D.length)(D(util.Random.nextInt(D.length)))
Run Code Online (Sandbox Code Playgroud)
或使用 map
val ResampledD = D map { x => D(util.Random.nextInt(D.length)) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |