Как създавате произволно заредени масиви в 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)