Уникальный random-srand в java? (как в c++)



В настоящее время я использую



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


И это псевдослучайно, потому что я всегда получаю одну и ту же последовательность чисел.
Я помню, что в c++ вы могли бы просто использовать ctime и использовать srand, чтобы сделать его уникальным. Как это сделать на Яве ?
621   1  

1 ответ:

  • Если вам требуется уникальный random в Java, используйте SecureRandom. Этот класс обеспечивает криптографически сильный генератор случайных чисел (RNG), что означает, что он может быть использован при создании сертификатов, и этот класс является медленным по сравнению с другими решениями.

  • Если вам требуется предсказуемая случайная величина, которую вы можете сбросить, используйте Random, где вы вызываете .setSeed(number), чтобы посеять его, чтобы сделать значения предсказуемыми с этой точки.

  • Если вы хотите псевдослучайный, что является случайным каждый раз, когда вы запускаете программу, используйте обычный Random. Случайный экземпляр по умолчанию является семенем некоторого хэша текущего времени.

Для лучшей случайности в каждом решении важно повторно использовать случайный экземпляр. Если этого не сделать, большая часть выходных данных, которые он дает, будет аналогичной в течение того же промежутка времени, и в случае выброшенного SecureRandom, он будет тратить много времени на воссоздание нового случайного.

Comments

    Ничего не найдено.