Java 的随机数生成器。生成数字的复杂性

标签 java algorithm random

我知道 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/

相关文章:

java - 我应该将 ACL 表插入我的数据库还是创建一个单独的数据库?

java - 如何更改 Java 的 ZonedDateTime 中的时区

c++ - 使用 string erase() 和 string length() 从字符串中删除某些字符

r - 如何生成带有随机字符散布的重复主题的序列

mysql - 如何优化 MySQL 的 ORDER BY RAND() 函数?

c++ - 对随机序列进行下采样会降低它的随机性吗?有没有一个原则/定理可以证明这一点?

java - 在启动时运行 BlackBerry 应用程序,并添加它在后台运行的通知

java - android-studio 取消声明为已弃用

algorithm - 小于数 k 的斐波那契数的个数。子 O(n)

基于高度图生成的3d模型纹理瓦片坐标计算算法