Générateur de nombres aléatoires qui gravite les nombres en un nombre donné dans la plage?

J’essaie de créer un générateur de nombres aléatoires qui renvoie une valeur flottante comprise entre 0 et 1 pondère la valeur renvoyée dans un sens ou dans l’autre.

Existe-t-il un moyen fiable de passer deux nombres, par exemple, Random (0.5), où ‘0.5’ signifie que le nombre compris entre 0 et 1 retournera à 0.5.

Cela pourrait aider?

http://www.c-sharpcorner.com/UploadFile/trevormisfeldt/NormalDissortingbution08302005003434AM/NormalDissortingbution.aspx

Cela ne résoudra pas votre problème avec précision, mais je me demande si la modélisation d’une courbe en cloche pourrait donner la tendance que vous recherchez.

Problème intéressant, puis-je vous demander ce que vous essayez de résoudre?

2nd Edit: Je viens de remarquer une autre question de S / O qui pourrait aider:

Nombre aléatoire dans une plage basée sur une dissortingbution normale

Vous faites référence à un nombre aléatoire projeté sur une courbe en cloche

pour lequel je fais généralement ce qui suit

///  /// generate a random number where the likelihood of a large number is greater than the likelihood of a small number ///  /// the random number generator used to spawn the number /// the random number public static double InverseBellCurve(Random rnd) { return 1 - BellCurve(rnd); } ///  /// generate a random number where the likelihood of a small number is greater than the likelihood of a Large number ///  /// the random number generator used to spawn the number /// the random number public static double BellCurve(Random rnd) { return Math.Pow(2 * rnd.NextDouble() - 1, 2); } ///  /// generate a random number where the likelihood of a mid range number is greater than the likelihood of a Large or small number ///  /// the random number generator used to spawn the number /// the random number public static double HorizontalBellCurve(Random rnd) { //This is not a real bell curve as using the cube of the value but approximates the result set return (Math.Pow(2 * rnd.NextDouble() - 1, 3)/2)+.5; } 

Notez que vous pouvez modifier les formules pour modifier la forme de la cloche afin d’ajuster la répartition des résultats.

par exemple, un simple Math.Sqrt (rnd.nextdouble ()) incline tous les nombres vers 1 et un simple Math.Power (rnd.nextdouble (), 2) incline les résultats vers 0