我正在寻找基于当前时间使用java生成唯一随机数的方法.我是一名c ++程序员,在c ++中,我通常会随着时间播种Random,所以在每个特定时刻我都可以得到一个唯一的随机数,它的工作原理如下:
sRand((time)Null);
x=Rand();
Run Code Online (Sandbox Code Playgroud)
在java中我发现我可以使用相同的方法通过随机播种随机数,如下所示:
Random rand = new Random(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)
这是我使用我在互联网上找到的所有方法在java中生成随机数的问题,但没有一个是真正随机的,它们的范围从负数到正数.例如:
Random rand = new Random(System.currentTimeMillis());
int x=rand.nextInt(); // or long or float ...
Run Code Online (Sandbox Code Playgroud)
我得到的是一系列不是真正随机的数字,结果与C++中的结果完全不同.
我只是想知道在java中执行此操作的最佳方法是,有些类似于或非常接近TAC编号生成.
Java和C++随机数都是伪随机数.当然算法不同,所以结果也不同.
如果你想要一个足够强大的随机数生成器用于加密,你可以使用SecureRandom:它的界面不太直观,它消耗更多的CPU,但其输出质量远高于普通的Java PRNG,
| 归档时间: |
|
| 查看次数: |
9796 次 |
| 最近记录: |