我正在尝试生成一个唯一的随机序列,其中包含50个二进制字符串,每个字符串的大小为36位。我试着做nextInt,然后再做toBinaryString,这不能解决我的问题,因为nextInt不支持这么大的数字,并且还检查了nextString生成了一些随机字符的字符串(不是0/1),还有其他方法可以实现吗? 另外要增加一个要求,我希望每次都出现36位,假设某个随机生成器生成3作为数字,我希望输出为000 ...(34)11。
我对Scala还是很陌生,请问我的问题似乎是无关紧要还是多余的。
答案 0 :(得分:1)
您可以尝试
val r = scala.util.Random
val a: immutable.Seq[Int] = (0 to 50).map(_ => r.nextInt(1000000))
val y = a.map( x => {
val bin = x.toBinaryString
val zero = 36 - bin.length
List.fill(zero)(0).mkString("") ++ bin
})
println(Random.shuffle(y))