I need to generate random Boolean values on a performance-critical path.
The code which I wrote for this is
std::random_device rd;
std::uniform_int_distribution<> randomizer(0, 1);
const int val randomizer(std::mt19937(rd()));
const bool isDirectionChanged = static_cast<bool>(val);
But do not think that this is the best way to do this as I do not like doing static_cast<bool>.
On the web I have found a few more solutions
1. std::bernoulli_distribution
2. bool randbool = rand() & 1; Remember to call srand() at the beginning.
Aucun commentaire:
Enregistrer un commentaire