Variieren Reihe von uniform_int_distribution

Also ich habe ein Random-Objekt:

typedef unsigned int uint32;

class Random {
public:
    Random() = default;
    Random(std::mt19937::result_type seed) : eng(seed) {}

private:
    uint32 DrawNumber();
    std::mt19937 eng{std::random_device{}()};
    std::uniform_int_distribution<uint32> uniform_dist{0, UINT32_MAX};
};

uint32 Random::DrawNumber()
{
    return uniform_dist(eng);
}

Was ist der beste Weg, den ich variieren kann (durch eine andere Funktion oder anderweitig), die der oberen Grenze von der distribution?

(auch bereit, eine Beratung auf anderen Stil-Fragen)

  • Sie können nicht variieren die Grenzen des distribution nach dem ersten initialisieren Sie Sie. Wie Sie Vorgehen sollten, hängt stark auf, was Sie verwenden, Ihre zufälligen zahlen-und warum Sie Sie brauchen, um die Grenzen.
  • Das ist falsch; Sie können.
  • Möglich, Duplikat der Benutzen Sie std::uniform_int_distribution und definieren deren Sortiment später (Vorwegnahme der Einwände: ja, das ist neuer und hat eine etwas tangential-Titel, aber IMO hat es mehr on-topic Antwort akzeptiert und in der Regel kommt der Punkt schneller)
  • Auf die Gefahr, parteiisch zu sein, das 2 verschiedene Fragen im wesentlichen die gleichen akzeptierten Antworten - "eine Andere Möglichkeit wäre, eine Methode hinzufügen..." - Teil von der anderen Frage die Antwort ist die gleiche wie die akzeptierte Antwort hier. Diese Antwort beinhaltet auch die Nutzung, mit einem std::mt19937. Das sagte die .param Methode ist neu. Da diese Frage ist jetzt 5 Jahre alt, vielleicht die beste Vorgehensweise wäre, um markieren Sie die anderen als Duplikat und ändern Sie die akzeptierte Antwort hier? Alternativ lassen Sie einfach die Fragen so wie Sie ist 🙂
InformationsquelleAutor LordAro | 2013-09-26
Schreibe einen Kommentar