Random sem números repetidos

Delphi

05/04/2005

Como fazer um Random de 10 números sem repetir algum número? Quero fazer um vetor de 10 posições, mas nenhum número pode ser repetido, exemplo: [8,2,3,6,5,4,1,0,9,7]


Biohazard

Biohazard

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

05/04/2005

Acho que só testando mesmo, armazene os valores que obter e a cada interação do Random, compare o valor obtido com os já gravados para ver se é igual ou não. Repita até obter a quantidade desejada de números.


GOSTEI 0
Beppe

Beppe

05/04/2005

Acho que só testando mesmo, armazene os valores que obter e a cada interação do Random, compare o valor obtido com os já gravados para ver se é igual ou não. Repita até obter a quantidade desejada de números.

Dá pra fazer isto mas o programa fica lento quando n for grande, O(n²).

É mais rápido se vc criar uma lista (ordenada) com os números [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], então permute seus elementos. Para fazer isto pode iterar pela lista, trocando o elemento sob o índice atual pelo elemento escolhido com Random.


GOSTEI 0
POSTAR