Κλάση System::Random

Random class

Αντιπροσωπεύει έναν ψευδο-τυχαίο γεννήτρια αριθμών. Τα αντικείμενα αυτής της κλάσης πρέπει να δημιουργούνται μόνο χρησιμοποιώντας τη συνάρτηση System::MakeObject(). Ποτέ μην δημιουργείτε ένα στιγμιότυπο αυτού του τύπου στη στοίβα ή χρησιμοποιώντας τον τελεστή new, καθώς αυτό θα οδηγήσει σε σφάλματα χρόνου εκτέλεσης και/ή σφάλματα ελέγχου. Πάντα να τυλίγετε αυτήν την κλάση σε δείκτη System::SmartPtr και να χρησιμοποιείτε αυτόν τον δείκτη για να τη μεταβιβάζετε σε συναρτήσεις ως όρισμα.

class Random : public System::Object

Μέθοδοι

ΜέθοδοςΠεριγραφή
IsNull() constΠάντα επιστρέφει false.
virtual Next()Επιστρέφει έναν μη-αρνητικό τυχαίο αριθμό μικρότερο από τη μέγιστη τιμή του int32.
virtual Next(int32_t)Επιστρέφει έναν μη-αρνητικό τυχαίο αριθμό μικρότερο από το καθορισμένο μέγιστο.
virtual Next(int32_t, int32_t)Επιστρέφει έναν τυχαίο αριθμό εντός του καθορισμένου εύρους.
virtual NextBytes(const ArrayPtr<uint8_t>&)Γεμίζει τα στοιχεία του καθορισμένου πίνακα bytes με τυχαίους αριθμούς.
virtual NextDouble()Επιστρέφει έναν τυχαίο αριθμό μεταξύ 0.0 και 1.0.
Random()Αρχικοποιεί ένα νέο αντικείμενο, χρησιμοποιώντας μια προεπιλεγμένη τιμή σπόρου εξαρτημένη από το χρόνο.
Random(int32_t)Αρχικοποιεί ένα νέο αντικείμενο της κλάσης System.Random, χρησιμοποιώντας την καθορισμένη τιμή σπόρου.

Παρατηρήσεις

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

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

  // Λάβετε έναν τυχαίο αριθμό μήνα και εκτυπώστε τον.
  auto monthNumber = rnd->Next(1, 13);
  std::cout << "Month: " << monthNumber << std::endl;

  // Γεμίστε τον πίνακα με τυχαίους αριθμούς.
  auto arr = System::MakeObject<System::Array<uint8_t>>(12);
  rnd->NextBytes(arr);

  // Εκτυπώστε τον πίνακα.
  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
*/

Δείτε επίσης