So funktioniert es natürlich. Vielleicht nochmal als Info, wie die Mathematik dahinter ist:
Als Beispiel für Delphi:
Delphi-Quellcode:
type TLinVerteilung=class
constructor create(min,max:double);
function getvalue:double;
private
a,b,c:double;
end;
unction TLinVerteilung.getvalue:double;
var y:double;
begin
y:=random; //y-wert
//quadratische funktion umkehren um aus dem y-Wert den x-Wert zu bestimmen
//(nur positive "Lösung")
//x=-b/(2a) + sqrt( b^2/(4a^2) - (c-y)/a )
result:=-b/(a*2)+sqrt(sqr(b/a)/4-(c-y)/a); //x-->result
end;
constructor TLinVerteilung.create(min,max:double);
begin
inherited create;
//Parameter der quadratischen Funktion für eine lineare Verteilung berechnen
//y=a*x^2 + b*x + c
//P1=(min,0)
//P2=(max,1)
//P1 ist gleichzeitig Scheitelpunkt der quadratischen Funktion
a:=1/sqr(max-min);
b:=-2*min*a;
c:=sqr(min)*a;
end;
Und wenn du jetzt die Variablen a,b,c oben bei getvalue einsetzt, kommst du genau auf deine Gleichung.
(Hey, das ist eine mathematische Herleitung mit Delphi
)
Ansonsten ist es schwer zu erklären. du musst dich in Verteilungsfunktionen einarbeiten.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.