Scala随机随机播放列表并重复

Sid*_*ant 0 random scala shuffle

我想随机整理一个scala列表。

我知道我可以通过使用 scala.util.Random.shuffle

但是在这里,通过调用此命令,我将始终获得一组新列表。我真正想要的是,在某些情况下,我希望洗牌能够始终为我提供相同的输出。那么我该如何实现呢?

基本上,我想做的是首先随机地随机排列一个列表,然后以相同的顺序重复它。我第一次想随机生成列表,然后基于某些参数重复相同的改组。

jwv*_*wvh 5

用于setSeed()在改组之前为生成器添加种子。然后,如果要重复随机播放,请重新使用种子。

例如:

scala> util.Random.setSeed(41L)  // some seed chosen for no particular reason

scala> util.Random.shuffle(Seq(1,2,3,4))
res0: Seq[Int] = List(2, 4, 1, 3)
Run Code Online (Sandbox Code Playgroud)

随机播放:1st-> 3rd,2nd-> 1st,3rd-> 4th,4th-> 2nd

现在我们可以重复相同的随机播放模式。

scala> util.Random.setSeed(41L)  // same seed

scala> util.Random.shuffle(Seq(2,4,1,3))  // result of previous shuffle
res1: Seq[Int] = List(4, 3, 2, 1)
Run Code Online (Sandbox Code Playgroud)