java 中唯一的随机数 - srand? (就像在 C++ 中一样)

Unique random - srand in java ? (like in c++)

目前我正在使用

Random rand = new Random();
myNumber = rand.nextInt((100-0)+1)+0;

这是一个伪随机数,因为我总是得到相同的数字序列。 我记得在 C++ 中,您可以只使用 ctime 并使用 srand 使其唯一。 java 是怎么做到的?

  • 如果您需要 Java 中的唯一随机数,请使用 SecureRandom。此 class 提供了一个加密强度高的随机数生成器 (RNG),这意味着它可以在创建证书时使用,并且此 class 与其他解决方案相比速度较慢。

  • 如果您需要一个可以重置的可预测随机数,请使用 Random,您可以在其中调用 .setSeed(number) 对其进行播种,以使值从该点开始可预测。

  • 如果你想要一个每次启动程序都是随机的伪随机,就用一个普通的Random。默认情况下,随机实例是当前时间的某个哈希值的种子。

为了在每个解决方案中获得最佳随机性,重用随机实例很重要。如果不这样做,它给出的大部分输出将在相同的时间跨度内相似,并且在丢弃 SecureRandom 的情况下,它将花费大量时间重新创建新的随机数。