/ / Създаване на масив в Spark Scala (семена) - масиви, скала, случайни семена

Създаване на масив в Spark Scala (семена) - масиви, скала, случайни семена

Как създавате произволно заредени масиви в Scala? Бих искал да има произволен масив, но този произволен масив трябва да бъде същият през цялата функция.

Използвайки scala.util, можем да направим, например

val arr1 = Array.fill[Float](Random.nextFloat)

Въпреки това, arr1 се променя всеки път, когато процесът минава през нея.

Тъй като имаме и семена в Скала, аз се опитах да направя:

val rndm = Random(4)
val arr1 = Array.fill[Float](rndm.nextFloat)

Все пак, той се променя всеки път, дори ако има семена.

Отговори:

2 за отговор № 1

Създайте произволен генератор със семена,

val r = new scala.util.Random(100)

За да създадете отново една и съща последователност от псевдо-случайни стойности, трябва да "нулирате" генератора, в противен случай той ще добави нови (евентуално) различни стойности към следващите последователности,

scala> val r = new scala.util.Random(100)
r: scala.util.Random = scala.util.Random@5b1dd206

scala> Array.fill(2)(r.nextFloat)
res6: Array[Float] = Array(0.7220096, 0.7346627)

scala> val r = new scala.util.Random(100)
r: scala.util.Random = scala.util.Random@6f371390

scala> Array.fill(2)(r.nextFloat)
res7: Array[Float] = Array(0.7220096, 0.7346627)