Мне нужен способ генерации случайных целых чисел между x, y, но как только генерируется случайный z, мне нужна следующая итерация x, y, чтобы исключить z (или, еще лучше, список ints для исключения). Возвращаемое значение должно соответствовать условию «std :: uniform_int_distribution <>». Существует очевидный способ сделать это, но я надеялся на быструю версию.C++ 11 Случайно между int x, int y, за исключением списка <int>
int GenerateRandomBetweenExcluding(int min, int max, int exclude) // even better is a list<int> to exclude
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(min, max); // how to exclude "exclude" or list<int>?
int randNum = dis(gen);
return randNum;
}
рандомизации между '' min' и макс-1 ', если результат> = 'exclude', добавьте – sp2danny
, который изменяет uniformnesss распределения, а возвращаемые значения могут сгруппироваться выше, исключить. – Ivan
Очевидным способом является отказ от него, если вы столкнетесь с ним? –