2017-09-28 4 views
-2

Ich habe eine Funktion erstellt, die eine Gauß-Zahl zwischen dem Minimum und dem Maximum, das Sie setzen, zurückgibt. Die zufällige Unterfunktion liefert eine Gaußsche Zahl zwischen 0 und 1, üblicherweise 0,5. Ich möchte wissen, ob es eine Möglichkeit ist, dass die Zahl 0 zu sein scheint als ob es Glocke halb gauss warenIch brauche Halb-Gauss Bell in Javascript

function gaussianNumber(min, max, strength) { 

function random(){ 
    var rand = 0; 
    for (var i = 0; i < strength; i++) { 
     rand += Math.random(); 
    } 
    return rand/strength; 
} 

return Math.floor(random()*(max+1-min)+min); 

}

Antwort

0

Dies könnte sinnvoller Ansatz sein Gauß'sche Zufallszahl zentralen Grenzwertsatz zu erzeugen, , aber Sie haben Ihren Ausdruck für random() falsch. Wenn Sie G(0,1) als Näherung für Gaußsche N(0,1) mit einem Mittelwert von 0 und 1 std.dev wollen, müssen Sie folgenden Ausdruck verwenden:

G(0,1) = (Sum_1^n U(0,1) - n/2)/sqrt(n/12) 

Empfohlen n beginnt mit 12, wenn Sie mit weniger Proben

-Code experimentieren können

function G(n) { 
    var rand = 0.0; 
    for (var i = 0; i != n; ++i) { 
     rand += Math.random(); 
    } 
    return (rand - 0.5*n)/Math.sqrt(n/12.0); 
} 

Weitere Diskussion ist here. Sie könnten die Hälfte der Gaußschen Glocke aus dieser Funktion machen, indem Sie nur den absoluten Wert der Funktion verwenden.

Es ist ein wenig unklar, was meinst du mit Gauß zwischen min und max. Wo soll der Mittelwert Ihres Gaussian sein? Du könntest irgendwo zwischen min und max bedeuten und es ist immernoch technisch drin.