2016-01-23 76 views
-3

Если я хочу попробовать из однородного распределения и получить двойные значения, я чувствую, что могу использовать как Random.nextDouble(), так и Random.nextGaussian() в java. Может кто-нибудь объяснить мне разницу, пожалуйста.В чем разница между nextGaussian и nextDouble в java Random class?

+1

Какая часть Javadoc для этих двух методов не ясна? Они возвращают разные диапазоны значений. –

+1

Вы можете, безусловно, не использовать nextGaussion для получения равномерного распределения (по крайней мере, не напрямую). – Thilo

+0

На самом деле мой друг, 'nextDouble' и' nextGaussian' может возвращать (теоретически) * любое значение '' double'. См. Http://stackoverflow.com/questions/43925566/does-java-threadlocalrandom-current-nextgaussian-have-a-limit – charneykaye

ответ

8

В соответствии с API Java Документов для nextDouble:

Возвращает следующие псевдохаотическом равномерно распределенный двойное значение между 0.0 и 1.0 из последовательности этого случайного числа генератора.

и nextGaussian:

Возвращает следующий псевдохаотическом Гаусс («нормально») распределены двойного значения со средним значением 0,0 и стандартным отклонением 1,0 из последовательности этого случайного числа генератора.

Это связано с вероятностью возврата определенных значений. Для равномерного распределения существует равная вероятность возврата каждого значения между 0.0 и 1.0. Другими словами, вероятность получения 0.0 такая же, как вероятность получения 0,5 или 0,7 и т. Д.

Для нормального распределения вероятность возврата значений будет соответствовать normal distribution curve. Шансы получить 0,0 (среднее значение) существенно больше, чем получение -1,0 или 1,0, что является стандартным отклонением 1,0 от среднего. Дальнейший отрицательный/положительный результат от 0.0, тем меньше вероятность возврата этого числа.

+0

Обратите внимание, что как 'nextDouble', так и' nextGaussian' могут возвращать (теоретически) * любые * 'double' стоимость. См. Http://stackoverflow.com/questions/43925566/does-java-threadlocalrandom-current-nextgaussian-have-a-limit – charneykaye