Wie lässt sich der Bereich am effizientesten definieren, wenn normalverteilte Zufallswerte generiert werden?

Zu Ihrer Information: zufällig == pseudozufällig

A. Wenn ich gleichmäßig zufällige Zahlen generiere, kann ich einen Bereich angeben, d.h.

(Math.random()-Math.random())*10+5
//generates numbers between -5 and 15

B. Erzeugen eines Satzes von Zufallswerten mit einer Version der Gaußschen normalen Zufälligkeit:

//pass in the mean and standard deviation
function randomNorm(mean, stdev) {
  return Math.round((Math.random()*2-1)+(Math.random()*2-1)+(Math.random()*2-1))*stdev+mean);
}

//using the following values:
{
  mean:400, 
  standard_deviation:1
  //results in a range of 397-403, or +-range of 3
},
{
  mean:400, 
  standard_deviation:10
  //results in a range of 372-429, or +-range of 30
},
{
  mean:400, 
  standard_deviation:25
  //results in a range of 326-471, or +-range of 75
}

Jede gibt mir einen Bereich von ungefähr standard_deviation * (+ - 3) (vorausgesetzt, ich habe das Programm länger laufen lassen).

C. Ich kann diesen Bereich wie folgt berechnen:

Angenommen, ich möchte einen Bereich von 300-500, also var total_range = 200;mein Mittelwert ist 400, mein + -Bereich ist total_range / 2 (var r = 100)standard_deviation wäre also r / 3 oder in diesem Fall 33.333.

Das scheint zu funktionieren, aber ich habe keine Ahnung, was ich mit Mathe mache, also fühle ich mich wie ein Idiot. Diese Lösung fühlt sich klobig und nicht ganz genau an.

Meine Frage: Gibt es eine Formel, um die ich tanze, die mir hier helfen kann? Meine Anforderungen sind wie folgt:

muss in der Lage sein, einen Zahlenbereich genau zu definieren.muss so effizient wie möglich in JavaScript erfolgen.

Ich denke, vielleicht bin ich in der Nähe, aber es ist nicht ganz da.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage