我知道 Java 使用线性同余生成器。我的问题是 - 生成随机数的复杂性是什么?您如何进行此类分析?
最佳答案
生成 随机数的复杂度为 O(1)。你的意思是“它在运行时和内存方面的成本是多少”?
您可以使用微基准来衡量它们,例如junit-benchmark 或 Brent Boyer 的基准测试(请参阅 What is the best macro-benchmarking tool / framework to measure a single-threaded complex algorithm in Java? 中的此类工具的大量列表)。
此外,我认为 Java 的随机数生成器非常快,但在统计上很差。而是使用外部库,例如位于 http://www.cs.gmu.edu/~sean/research/ 的 Mersenne Twister ,或者,如果运行时对您来说如此重要,那么 Fast Mersenne Twister。
关于Java 的随机数生成器。生成数字的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291911/