有没有办法在 Apex 中为随机数生成器设置种子?如果是这样; 我要使用哪个功能?
问问题
2776 次
2 回答
2
在 Apex 中播种 RNG 可能是不可能的。如果您需要一个可重复的随机数序列,您必须自己实现一个种子伪随机数生成器。
在 Apex 平台上,我确信他们有大量可用于生成随机数的熵源,您无需为生成器播种。
于 2012-08-14T21:33:06.300 回答
1
无法在 Salesforce 中播种内置随机数生成器。我和你在同一条船上。我希望能够使用种子,这样我就可以创建可重复的随机数。
所以,我想我会尝试编写自己的RNG。我花了几天时间在互联网上搜索算法。我能够拼凑出一个非常全面的函数库,这些函数库是从各种来源借来的。这些类是:“Random.cls”,它是主要的 RNG 类,以及“Random_Test.cls”,它是测试代码。
它有以下方法:
- 下一个整数(上限)
- nextLong(上限)
- nextDouble(上限)
- nextUniform() - 与 Math.Random() 相同的函数返回 0.0 到 1.0 之间的 Double。
- nextIntegerInRange(下限,上限)
- nextLongInRange(下限,上限)
- nextDoubleInRange(下限,上限)
- shuffle(List<Object>) - 破坏原始列表的顺序
- shuffleWithCopy(List<Object>) - 返回列表的混洗副本,以防您希望保留列表的原始顺序(效率低于“shuffle(List<Object>)”)
“Random.cls”记录了我借用的资源,以防您想了解更多关于随机数生成器的信息。
我将代码放在 GitHub 上供任何需要的人使用:https ://github.com/DeviousBard/Salesforce/tree/master
于 2016-07-07T00:28:51.543 回答