GARANTIR DESCONTO

Fórum função randomize #268804

16/02/2005

0

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

Urbano

Responder

Posts

16/02/2005

Marcelo Saviski

use o Randomize só uma vez, no inicio do bloco ou loop que gera ós nº aleatórios


Responder

Gostei + 0

16/02/2005

Motta

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.


Responder

Gostei + 0

16/02/2005

Marcelo Saviski

ops, acho que não tinha prestado bem atenção na dúvida...

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


Responder

Gostei + 0

16/02/2005

Urbano

Valeu funcionou!!!!!!!!!!!!!
É ISSO MESMO QUE EU ESTAVA PRECISANDO


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar