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 ok
th 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