Générer un flottant aléatoire en C#
-
Générer un flotteur aléatoire entre
0
et1
avec la fonctionRandom.NextDouble()
enC#
-
Générer un float aléatoire sans plage avec la fonction
Random.NextDouble()
enC#
-
Générer un float aléatoire dans une plage spécifique avec la fonction
Random.NextDouble()
enC#
-
Générer un flotteur aléatoire avec la fonction
Random.NextBytes()
enC#
Dans ce didacticiel, nous aborderons les méthodes permettant de générer une valeur flottante aléatoire en C#.
Générer un flotteur aléatoire entre 0
et 1
avec la fonction Random.NextDouble()
en C#
Malheureusement, il n’y a pas de méthode intégrée pour générer un nombre aléatoire en C#. Nous devons donc nous fier à certaines méthodes définies par l’utilisateur pour atteindre cet objectif. La fonction Random.NextDouble()
permet de générer une valeur double aléatoire entre 0
et 1
. Nous pouvons utiliser cette fonction pour générer une valeur double aléatoire entre 0
et 1
, puis transtyper cette valeur aléatoire dans un flottant. L’exemple de code suivant nous montre comment générer une valeur flottante aléatoire entre 0
et 1
avec la fonction Random.NextDouble()
en C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
float randomFloat = (float)rand.NextDouble();
Console.WriteLine("Random Float = {0}", randomFloat);
}
}
}
}
Production:
Random Float = 0.3914659 Random Float = 0.8927528 Random Float = 0.6579643 Random Float =
0.4404075 Random Float = 0.3213561 Random Float = 0.3399849 Random Float =
0.04562188 Random Float = 0.1881405 Random Float = 0.7638124 Random Float = 0.1645804
Nous avons généré une valeur flottante aléatoire entre 0
et 1
avec la fonction Random.NextDouble()
en C#. Nous avons d’abord généré une valeur double aléatoire entre 0
et 1
, puis nous avons converti cette valeur double en une valeur flottante en utilisant le typage.
Générer un float aléatoire sans plage avec la fonction Random.NextDouble()
en C#
Nous pouvons également générer une valeur flottante aléatoire sans définir la plage entre 0
et 1
avec la fonction Random.NextDouble()
en C#. La seule plage de cette méthode est la plage de valeurs que le type de données float peut contenir. Nous pouvons utiliser float.MaxValue
et float.MinValue
pour spécifier les valeurs maximum et minimum que le type de données float peut stocker. L’exemple de code suivant nous montre comment générer une valeur flottante aléatoire sans spécifier de plage avec la fonction Random.NextDouble()
en C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double range = (double)float.MaxValue - (double)float.MinValue;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + float.MinValue;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
Production:
1.500952E+38 - 1.930891E+38 2.951987E+38 - 1.205054E+38 - 6.225039E+37 3.843309E+36 -
1.241292E+38 1.360907E+38 1.769061E+38 - 1.577001E+38
Nous avons généré une valeur flottante aléatoire sans plage avec la fonction Random.NextDouble()
en C#. Nous avons initialisé la variable double range
avec float.MaxValue - float.MinValue
et l’avons ensuite transtypée en double type de données. Cela garantit que la plage de valeurs aléatoires reste dans la plage de valeurs qu’un type de données flottant peut gérer. Nous avons calculé la valeur aléatoire en multipliant la valeur retournée par la fonction Random.NextDouble()
par la plage
et en ajoutant float.MinValue
au résultat. En fin de compte, nous avons converti la valeur aléatoire en type de données float avec le typage.
Générer un float aléatoire dans une plage spécifique avec la fonction Random.NextDouble()
en C#
Nous pouvons également générer une valeur aléatoire dans une plage spécifique avec la fonction Random.NextDouble()
en C#. Par exemple, supposons que nous devions générer une valeur flottante aléatoire entre 1
et 10
. Dans ce cas, on peut générer une valeur aléatoire entre 0
et 1
avec la fonction Random.NextDouble()
, la multiplier par la plage puis y ajouter la valeur minimale. L’exemple de code suivant nous montre comment générer un nombre aléatoire entre une plage spécifiée avec la fonction Random.NextDouble()
en C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double min = 1;
double max = 10;
double range = max - min;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + min;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
Production:
3.468961 8.04868 2.210197 8.150612 4.217263 5.328617 4.730082 8.462176 2.679844 8.609394
Nous avons généré une valeur flottante aléatoire entre 1
et 10
avec la fonction Random.NextDouble()
en C#. Nous avons spécifié les valeurs min
et max
et calculé la plage
avec plage = max - min
. Nous avons calculé la valeur aléatoire en multipliant la valeur retournée par la fonction Random.NextDouble()
par la range
et en ajoutant min
au résultat. En fin de compte, nous avons converti la valeur aléatoire en type de données float avec le typage.
Générer un flotteur aléatoire avec la fonction Random.NextBytes()
en C#
On peut aussi générer une valeur flottante aléatoire avec la fonction Random.NextBytes()
en C#. La fonction Random.NextBytes(byte[])
est utilisée pour remplir le tableau byte[]
avec des valeurs d’octets aléatoires. Nous pouvons générer des valeurs flottantes aléatoires en convertissant les octets stockés dans byte[]
en type de données float. L’exemple de code suivant nous montre comment générer une valeur flottante aléatoire avec la fonction Random.NextBytes()
en C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
var array = new byte[4];
rand.NextBytes(array);
float randomFloat = BitConverter.ToSingle(array, 0);
Console.WriteLine("Random Value = {0}", randomFloat);
}
}
}
}
Production:
Random Value = 2.021232E-20 Random Value = -121623 Random Value = -1.564382E+38 Random Value =
1.146448E-14 Random Value = -6.874067E-22 Random Value = -1.226989E+31 Random Value =
-3.01435E+08 Random Value = -8.568415E+30 Random Value = -1.454825E+27 Random Value =
3.801608E-26
Nous avons généré une valeur flottante aléatoire avec la fonction Random.NextBytes()
en C#. Nous avons rempli le tableau array
avec des valeurs d’octets aléatoires avec la fonction Random.NextBytes()
. Nous avons converti les valeurs d’octets en float avec la fonction BitConverter.ToSingle()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn