Ver Mensaje Individual
  #5  
Antiguo 08-12-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
kwan comentó:
Bueno he probado el codigo del link que puse pero he obsevado que siempre me da el mismo orden de números
Ha de ser porque falta usar Randomize. De cualquier forma aquí te pongo una función que te regresa un arreglo de números ordenados aleatoriamente:

Código:
type
  TNumeros = array of Integer;

function Aleatorio(Cantidad: Integer): TNumeros;
var
  Bits: TBits; 
  Numero: Integer;
  Indice: Integer;

begin
  Bits := TBits.Create;
  Bits.Size := Cantidad;

  SetLength(Result, Cantidad);

  Randomize;
  Indice := 0;
  repeat
    Numero := Random(Cantidad);
    if not Bits[Numero] then
    begin
      Bits[Numero] := true;
      Result[Indice] := Numero + 1;
      Inc(Indice);
    end;
  until Indice = Cantidad;
end;
TBits es un arreglo de booleans que nos permite saber qué números ya han sido seleccionados. El arreglo te da´los números de 1 a Cantidad.

// Saludos
Responder Con Cita