java - 唯一随机数生成

标签 java

我正在寻找使用 java 生成基于当前时间的唯一随机数的方法。 我是一名 C++ 程序员,在 C++ 中,我通常随时间播种随机数,因此在每个特定时刻我都可以获得一个唯一的随机数,它的工作方式如下:

sRand((time)Null);
x=Rand();

在 java 中,我发现我可以使用相同的方法通过像这样用时间播种随机数:

Random rand = new Random(System.currentTimeMillis());

问题是我使用了我在 Internet 上找到的所有方法在 Java 中生成随机数,但没有一个是真正随机的,它们的范围从负数到正数。 例如:

Random rand = new Random(System.currentTimeMillis());
int x=rand.nextInt(); // or long or float ...

我得到的是一系列不是真正随机的数字,结果与 C++ 中的结果完全不同。

我只想知道在 Java 中执行此操作的最佳方法是什么,有些类似于或非常接近 TAC 数字生成。

最佳答案

Java 和C++ 的随机数都是pseudorandom .当然算法不同,结果也不同。

如果您想要一个强大到足以用于密码学的随机数生成器,您可以使用 SecureRandom : 它的界面不太直观,消耗更多的 CPU,但其输出质量远高于 Java 的常规 PRNG,

关于java - 唯一随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10766801/

相关文章:

java - JTextArea append() 方法写入两次?

java - Java中傅里叶变换的动态计算

java - 在if语句中创建对象并稍后使用它

java - 服务器停止时从类路径读取文件

java - 如何在java中使用数组在一行中设置多个选择条件?

java - RecyclerView 能否与其余 fragment 布局一起滚动?

java - 错误 com.xuggle.ferry.JNILibraryLoader - 无法加载库 : xuggle-xuggler; version: 3;

java - 如何使用 swing 组件向 JLabel 添加刷新计时器

java - 这两个代码的输出是什么?

java - 如何拥有资源文件