/ / ré-échantillonnage dans scala, la manière fonctionnelle - scala, programmation fonctionnelle, ré-échantillonnage

ré-échantillonnage dans Scala, de manière fonctionnelle - Scala, programmation fonctionnelle, ré-échantillonnage

J'ai un tableau d'échantillons, D, que j'aimeraisré-échantillonner uniformément avec remplacement pour construire un nouveau tableau. Une solution procédurale est très simple, mais je me demande si quelqu'un a des idées sur la façon de le faire "de manière fonctionnelle"? (Je viens juste de prendre Scala et la programmation fonctionnelle)

Une implémentation fonctionnelle pour démontrer ce que je veux dire:

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)

Réponses:

6 pour la réponse № 1

le Array objet compagnon a certaines méthodes pour construire de nouveaux tableaux, et celui dont vous avez besoin est fill:

val ResampledD = Array.fill(D.length)(D(util.Random.nextInt(D.length)))

Ou utiliser map

val ResampledD = D map { x => D(util.Random.nextInt(D.length)) }