Escolha m elementos aleatoriamente a partir de um vetor contendo n elementos

Eu tenho um vetor contendon elementos. Preciso escolher um subconjunto dem elementos aleatoriamente do vetor sem repetição. Qual é a maneira mais eficiente de fazer isso? Preciso fazer isso milhares de vezes no meu código.

A solução em minha mente é usarrand() para gerar um número aleatóriok entre0 en. Em seguida, escolha okth elemento no vetor e insira-o em umstd::set. Continue fazendo isso até que o tamanho do aparelho seja igual am. Agora estou certo de que o conjunto contémm elementos únicos escolhidos aleatoriamente do conjunto den elementos.

Quais são as outras soluções possíveis?

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion