如何在Apex中为Math.random()设置种子

时间:2012-08-14 14:39:35

标签: apex-code

有没有办法在Apex中为随机数生成器设置种子?如果是这样;我会使用哪种功能?

2 个答案:

答案 0 :(得分:2)

可能无法在Apex中播种RNG。如果你需要一个可重复的随机数序列,你必须自己实现一个种子伪随机数发生器。

在Apex平台上,我确信它们有巨大的熵源可用于生成随机数,并且您无需为发生器播种。

答案 1 :(得分:1)

无法在Salesforce中为内置随机数生成器播种。我和你在同一条船上。我希望能够使用种子,这样我就可以创建可重复的随机数。

所以,我以为我会尝试编写自己的RNG。我花了很多天在互联网上搜索算法。我能够拼凑出一个从各种来源借来的非常全面的功能库。这些类是:" Random.cls",它是主要的RNG类," Random_Test.cls",这是测试代码。

它有以下方法:

  1. nextInteger(UPPERLIMIT)
  2. nextLong(UPPERLIMIT)
  3. nextDouble(UPPERLIMIT)
  4. nextUniform() - 与Math.Random()函数相同,返回介于0.0和1.0之间的Double。
  5. nextIntegerInRange(lowerLimit,upperLimit)
  6. nextLongInRange(lowerLimit,upperLimit)
  7. nextDoubleInRange(lowerLimit,upperLimit)
  8. shuffle(List< Object>) - 破坏原始列表的顺序
  9. shuffleWithCopy(List< Object>) - 返回列表的随机副本,以防您希望保留列表的原始顺序(效率低于" shuffle(List< Object>)&# 34)
  10. " Random.cls"记录我借来的来源,以防你想了解更多有关随机数生成器的信息。

    我把代码放在GitHub上给任何想要它的人:https://github.com/DeviousBard/Salesforce/tree/master