3

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

4

2 回答 2

2

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

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

于 2012-08-14T21:33:06.300 回答
1

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

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

它有以下方法:

  1. 下一个整数(上限)
  2. nextLong(上限)
  3. nextDouble(上限)
  4. nextUniform() - 与 Math.Random() 相同的函数返回 0.0 到 1.0 之间的 Double。
  5. nextIntegerInRange(下限,上限)
  6. nextLongInRange(下限,上限)
  7. nextDoubleInRange(下限,上限)
  8. shuffle(List<Object>) - 破坏原始列表的顺序
  9. shuffleWithCopy(List<Object>) - 返回列表的混洗副本,以防您希望保留列表的原始顺序(效率低于“shuffle(List<Object>)”)

“Random.cls”记录了我借用的资源,以防您想了解更多关于随机数生成器的信息。

我将代码放在 GitHub 上供任何需要的人使用:https ://github.com/DeviousBard/Salesforce/tree/master

于 2016-07-07T00:28:51.543 回答