Qual é a melhor maneira de gerar bools aleatórios?
Eu preciso gerar valores booleanos aleatórios em um caminho crítico de desempenho.
O código que escrevi para isso é
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);
Mas não pense que essa é a melhor maneira de fazer isso, pois não gosto de fazerstatic_cast<bool>
.
Na web, encontrei mais algumas soluções
1 std::bernoulli_distribution
2) bool randbool = rand() & 1;
Lembre-se de ligarsrand()
no inicio.