Скажем, у меня есть y
различные значения, и я хочу выбрать x
из них в случайном порядке. Какой эффективный алгоритм для этого? Я мог бы просто называть rand()
x
раз, но производительность была бы плохой, если x
, y
были большими.
Обратите внимание, что здесь нужны комбинации: каждое значение должно иметь такую же вероятность, чтобы быть выбранным, но их порядок в результате не важен. Конечно, любой алгоритм, генерирующий permutations, но мне интересно, можно ли сделать это более эффективно без требования случайного порядка.
Как эффективно генерировать список K неповторяющихся целых чисел от 0 до верхней границы N охватывает этот случай для перестановок.