função randomize
Ola galera estou desenvolvendo um proj e estou usando a função randomize (gerar numeros aleatórios). Tem como fazer com que os numeros gerados não se repitam?
Urbano
Curtidas 1
Respostas
Marcelo Saviski
16/02/2005
use o Randomize só uma vez, no inicio do bloco ou loop que gera ós nº aleatórios
GOSTEI 0
Motta
16/02/2005
Se eles são aleatórios não devem seguir lógica nenhuma.
Assim o uso de uma função deste tipo tem a chance estatística dele se repetir.
Vc pode guardar os valores gerados num array e verificar se já foram ´sorteados´
Outra solução é gerar os valores possiveis, carrega-los num array (TStringList serve) sortea-los pelo array e remover os valores do array.
Assim o uso de uma função deste tipo tem a chance estatística dele se repetir.
Vc pode guardar os valores gerados num array e verificar se já foram ´sorteados´
Outra solução é gerar os valores possiveis, carrega-los num array (TStringList serve) sortea-los pelo array e remover os valores do array.
GOSTEI 0
Marcelo Saviski
16/02/2005
ops, acho que não tinha prestado bem atenção na dúvida...
um exemplo:
Mas tem que cuidar para não chamar a função mais vezes do que o parametro passado Max, senão ela entra em loop infinito
um exemplo:
var FormX: TFormX; ... Nums: string;
function Sorteia(Max: Integer): Integer begin repeat Result := Random(Max); until Pos(IntToStr(Result), nums) = -1; Nums := Nums + IntToStr(Result) + ´,´; end;
Mas tem que cuidar para não chamar a função mais vezes do que o parametro passado Max, senão ela entra em loop infinito
GOSTEI 0
Urbano
16/02/2005
Valeu funcionou!!!!!!!!!!!!!
É ISSO MESMO QUE EU ESTAVA PRECISANDO
É ISSO MESMO QUE EU ESTAVA PRECISANDO
GOSTEI 0