Questa è una domanda combinata di Java e matematica di base. La documentazione di Random.nextGaussian() afferma che campiona da una distribuzione normale con media 0 e deviazione standard 1. E se volessi campionare da una distribuzione normale con una media e una varianza diversa?Can Random.nextgaussian() può campionare valori da una distribuzione con media diversa e deviazione standard?
risposta
La risposta breve è
Random r = new Random();
double mySample = r.nextGaussian()*desiredStandardDeviation+desiredMean;
Per esempio questa risposta è dato qui: http://www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.shtml
non capivo veramente perché questo ha funzionato, ma dopo aver guardato in esso un po 'penso che ho capito su. La media del punto di campionamento è 0 e la deviazione standard è 1; ciò significa che il campione originale è anche il proprio punteggio z (https://en.wikipedia.org/wiki/Standard_score). Per citare da wikipedia "Il valore assoluto di z rappresenta la distanza tra il punteggio grezzo e la media della popolazione in unità della deviazione standard". La formula è z = (media x)/stdev, quindi con i valori predefiniti z = x. Se volessimo mantenere il punteggio z per il campione ma cambiare la media e lo stdev, cosa faremmo?
z * stdev + mean = x 'dove z = x, e x' rappresenta il campione dalla distribuzione con la media desiderata e la deviazione standard.
Vuoi che qualcuno confermi che è corretto? Se è così, posso confermarlo. –
grazie pbabcdef! La sto postando come risposta generale nel caso in cui qualcuno cerchi su Google per questa domanda. – darkhipo