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

问题描述 投票:0回答:2

目前我正在使用

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

它是伪随机的,因为我总是得到相同的数字序列。 我记得在 C++ 中你可以只使用 ctime 并使用 srand 来使其独一无二。你如何在java中做到这一点?

java android-studio random srand
2个回答
4
投票
  • 如果您需要 Java 中的唯一随机数,请使用

    SecureRandom
    。此类提供了密码学上强大的随机数生成器 (RNG),这意味着它可以在创建证书时使用,并且与其他解决方案相比,此类速度较慢。

  • 如果您需要可重置的可预测随机数,请使用

    Random
    ,您可以在其中调用
    .setSeed(number)
    为其播种,以使值从该点开始可预测。

  • 如果您想要每次启动程序时都是随机的伪随机数,请使用普通的

    Random
    。默认情况下,随机实例是当前时间的某个哈希值的种子。

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


-3
投票

更改字体 uwijiwiwhwihwihwihwiwhiwh

© www.soinside.com 2019 - 2024. All rights reserved.