Programación General => Delphi => Mensaje iniciado por: Azaghal en Viernes 26 de Mayo de 2006, 05:17
Título: Numeros Aleatorios
Publicado por: Azaghal en Viernes 26 de Mayo de 2006, 05:17
Alguien sabe alguna forma de crear 15 numeros aleatorios ( del 0 al 50 ) donde nunca se repita alguno.
De antemano mil gracias
Título: Re: Numeros Aleatorios
Publicado por: Enko en Sábado 27 de Mayo de 2006, 00:42
Una posibilidad seria sacar numeros al azar y almacenarlos en un vector de 15 elementos. Ates de agregarlo al vector verificar si no está repetido.
La otra seria tener un vector de 50 elementos e inicialmente tener el indice del vector correspondiendo con el valor almacenado. Algo así:
Código: Text
var
vector: array[1..50] of integer;
begin
for i:=1 to 50 do
vector[i] := i;
y ahora mezclarlo como si fuera una baraja de naipes:
Código: Text
for i:=1 to 50 do
begin
randomIndex := random(50)+1;
Intercambiar(vector[i], vector[randomIndex]);
end;
procedure Intercambiar(A,B: Integer);
var
c: integer;
begin
C := A;
A := B;
B := C;
end;
Ahroa tienes un vector de 50 elementos con 50 numeros aleatoreos de 1 al 50. Si usas los primeros 15, tendras 15 numeros aleatoreos del 1 al 50 sin repetir. Puedes usar del 1 al 16, o del 30 al 45, es lo mismo.
Título: Re: Numeros Aleatorios
Publicado por: Azaghal en Domingo 28 de Mayo de 2006, 21:38