繁体   English   中英

如何在scala中生成固定大小(例如36位)的二进制字符串的随机序列

[英]How to generate a random sequence of binary strings of fixed size ( say 36 bits ) in scala

我正在尝试生成一个唯一的随机序列,其中包含50个二进制字符串,每个字符串的大小为36位。 我试着做nextInt,然后再做toBinaryString,这不能解决我的问题,因为nextInt不支持这么大的数字,并且还检查了nextString生成了一些随机字符的字符串(不是0/1),还有其他方法可以实现吗? 为了增加一个更多的要求,我希望每次都出现36位,假设某个随机生成器生成3作为一个数字,我希望输出为000 ...(34)11。

我对scala还是很陌生,请问我的问题似乎是无关紧要还是多余。

你可以试试

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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM