Générer un flottant aléatoire en C#

Muhammad Maisam Abbas 16 février 2024
  1. Générer un flotteur aléatoire entre 0 et 1 avec la fonction Random.NextDouble() en C#
  2. Générer un float aléatoire sans plage avec la fonction Random.NextDouble() en C#
  3. Générer un float aléatoire dans une plage spécifique avec la fonction Random.NextDouble() en C#
  4. Générer un flotteur aléatoire avec la fonction Random.NextBytes() en C#
Générer un flottant aléatoire en C#

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().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Csharp Float