• Domingo 22 de Diciembre de 2024, 02:21

Autor Tema:  Numeros Aleatorios  (Leído 1835 veces)

Azaghal

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Numeros Aleatorios
« en: Viernes 26 de Mayo de 2006, 05:17 »
0
Alguien sabe alguna forma de crear 15 numeros aleatorios ( del 0 al 50 ) donde nunca se repita alguno.

De antemano mil gracias

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Numeros Aleatorios
« Respuesta #1 en: Sábado 27 de Mayo de 2006, 00:42 »
0
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
  1.  
  2. var
  3.   vector: array[1..50] of integer;
  4. begin
  5.  for i:=1 to 50 do
  6.       vector[i] := i;
  7.  
  8.  
y ahora mezclarlo como si fuera una baraja de naipes:
Código: Text
  1.  
  2. for i:=1 to 50 do
  3. begin
  4.    randomIndex := random(50)+1;
  5.    Intercambiar(vector[i], vector[randomIndex]);
  6. end;
  7.  
  8. procedure Intercambiar(A,B: Integer);
  9. var
  10.  c: integer;
  11. begin
  12.       C := A;
  13.       A := B;
  14.       B := C;
  15. end;
  16.  
  17.  

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.

Azaghal

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Numeros Aleatorios
« Respuesta #2 en: Domingo 28 de Mayo de 2006, 21:38 »
0
Ohhh  :o  Muchas gracias lo pondre en practica.