簡體   English   中英

使用 Scala 生成隨機序列

[英]Generating a random sequence using Scala

我需要從 10^-10 到 10^10 獲取 100 個值的隨機序列,並使用 Scala 存儲到Array中。 我試過跟隨但沒有用

Array(scala.math.pow(10,-10).doubleValue to scala.math.pow(10,10).intValue by scala.math.pow(10,5).toLong)

誰能幫我弄清楚如何正確地做到這一點?

所以你需要用Random元素fill()數組。

import scala.util.Random

val rndm = new Random(1911L)
Array.fill(100)(rndm.between(math.pow(10,-10), math.pow(10,10)))
//res0: Array[Double] = Array(6.08868427907728E9
// , 3.29548545155816E9
// , 9.52802903383275E9
// , 7.981295238889314E9
// , 1.9462480080050848E9
// . . .

這是因為fill()方法的第二個參數是“按名稱”,即為每個元素重新評估。


更新

如果你沒有.between()方法(Scala 2.13),事情就不是那么干凈了。

Array.fill(100)(rndm.nextDouble())
     .map(_ * math.pow(10,10))

請注意,這實際上具有0.0而不是所需的0.0000000001的下限。 您的條目不太可能太小,尤其是在僅采集 100 個樣本時。 不過,您可以采取一些措施來確保不會發生這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM