Arrays 在Spark Scala中创建阵列(种子)
如何在Scala中创建随机种子数组?我想要一个随机数组,但这个随机数组在整个函数中必须是相同的 例如,我们可以使用Arrays 在Spark Scala中创建阵列(种子),arrays,scala,random,seed,Arrays,Scala,Random,Seed,如何在Scala中创建随机种子数组?我想要一个随机数组,但这个随机数组在整个函数中必须是相同的 例如,我们可以使用scala.util val arr1 = Array.fill[Float](Random.nextFloat) 但是,arr1在每次处理过程中都会发生变化 因为我们在Scala也有种子,我试着做: val rndm = Random(4) val arr1 = Array.fill[Float](rndm.nextFloat) 尽管如此,即使有种子,它也会每次发生变化。使用种
scala.util
val arr1 = Array.fill[Float](Random.nextFloat)
但是,arr1
在每次处理过程中都会发生变化
因为我们在Scala也有种子,我试着做:
val rndm = Random(4)
val arr1 = Array.fill[Float](rndm.nextFloat)
尽管如此,即使有种子,它也会每次发生变化。使用种子创建一个随机生成器
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)
创建一个带有种子的随机生成器
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)