Double aléatoire entre les nombres donnés
Je suis à la recherche pour certains succincte, moderne C# code à générer de façon aléatoire un nombre double entre 1.41421
et 3.14159
. lorsque le nombre devrait être [0-9]{1}.[0-9]{5}
format.
Je pense à une solution qui utilise Enumerable.Range
en quelque sorte, peut le rendre plus concis.
source d'informationauteur dotnetandsqldevelop | 2013-07-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement définir une méthode qui retourne un nombre aléatoire entre deux valeurs:
Vous pouvez ensuite appeler cette méthode avec vos valeurs désirées:
Utiliser quelque chose comme cela.
Aussi, vous ne pouvez pas forcer un nombre décimal pour correspondre à votre modèle. E. g. si vous avez
1.5
nombre ne correspondra pas à1.50000
format. Donc, vous devriez format de résultat comme une chaîne de caractères:J'ai utilisé ce. J'espère que cette aide.
Consultez le lien suivant pour prêt-à-implémentations qui devraient vous aider:
MathNet.Des nombres, des Nombres Aléatoires et Distributions de Probabilité
L'étendue des distributions sont particulièrement d'intérêt, construit sur les Générateurs de nombres Aléatoires (MersenneTwister, etc.) directement dérivé du Système.Aléatoire, tout en fournissant pratique des méthodes d'extension (par exemple, NextFullRangeInt32, NextFullRangeInt64, NextDecimal, etc.). Vous pouvez, bien sûr, il suffit d'utiliser la valeur par défaut SystemRandomSource, qui est tout simplement le Système.Aléatoire embelli avec les méthodes d'extension.
Oh, et vous pouvez créer votre RNG instances thread-safe si vous en avez besoin.
Très pratique en effet!
ici ma solution, c'est pas joli, mais il fonctionne bien
Random rnd = new Random();
double num = Convert.ToDouble(rnd.Next(1, 15) + "." + rnd.Next(1, 100));
Console.WriteLine(num);
Console.ReadKey();