classe System::Random

Random class

Représente un générateur de nombres pseudo‑aléatoires. Les objets de cette classe ne doivent être alloués qu’en utilisant la fonction System::MakeObject(). Ne créez jamais d’instance de ce type sur la pile ou avec l’opérateur new, car cela entraînera des erreurs d’exécution et/ou des échecs d’assertion. Enveloppez toujours cette classe dans un pointeur System::SmartPtr et utilisez ce pointeur pour le transmettre aux fonctions en tant qu’argument.

class Random : public System::Object

Méthodes

MéthodeDescription
IsNull() constRenvoie toujours false.
virtual Next()Retourne un nombre aléatoire non négatif inférieur à la valeur maximale int32.
virtual Next(int32_t)Retourne un nombre aléatoire non négatif inférieur au maximum spécifié.
virtual Next(int32_t, int32_t)Retourne un nombre aléatoire dans la plage spécifiée.
virtual NextBytes(const ArrayPtr<uint8_t>&)Remplit les éléments du tableau d’octets spécifié avec des nombres aléatoires.
virtual NextDouble()Retourne un nombre aléatoire compris entre 0,0 et 1,0.
Random()Initialise une nouvelle instance en utilisant une valeur de graine par défaut dépendante du temps.
Random(int32_t)Initialise une nouvelle instance de la classe System.Random en utilisant la valeur de graine spécifiée.

Remarques

#include "system/random.h"
#include "system/smart_ptr.h"
#include <iostream>

int main()
{
  const auto rnd = System::MakeObject<System::Random>();

  // Obtenez un numéro de mois aléatoire et affichez‑le.
  auto monthNumber = rnd->Next(1, 13);
  std::cout << "Month: " << monthNumber << std::endl;

  // Remplissez le tableau avec des nombres aléatoires.
  auto arr = System::MakeObject<System::Array<uint8_t>>(12);
  rnd->NextBytes(arr);

  // Imprimez le tableau.
  for (auto i = 0; i < arr->get_Length(); ++i)
  {
    std::cout << static_cast<int>(arr[i]) << ' ';
  }
  std::cout << std::endl;

  return 0;
}
/*
This code example produces the following output:
Month: 4
177 213 89 240 68 182 18 96 109 131 1 78
*/

Voir aussi