gpt4 book ai didi

java - 唯一随机数生成

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:53 24 4
gpt4 key购买 nike

我正在寻找使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com