2015-07-31 31 views

risposta

30

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.

+4

Vuoi che qualcuno confermi che è corretto? Se è così, posso confermarlo. –

+3

grazie pbabcdef! La sto postando come risposta generale nel caso in cui qualcuno cerchi su Google per questa domanda. – darkhipo