Pascal/Turbo Pascal - RANDOM

 
Vista:

RANDOM

Publicado por Maria (2 intervenciones) el 19/12/2009 20:22:11
Tengo un programa que genera 90 numeros. Despues tengo q ir imprimiendo esos 90 numeros aleatoriamente sin que se repitan pero al utilizar el random se me repiten algunos. Alguna idea para solucionarlo???

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:RANDOM

Publicado por Alexis (44 intervenciones) el 19/12/2009 20:30:41
A medida que generas los numeros los puedes guardar en un vector, luego sólo vas comparando con lo que tienes en el vector y ya.

Espero te ayude!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RANDOM

Publicado por Antonio (74 intervenciones) el 21/12/2009 02:05:04
Hola María
En primer lugar te inserto el código fuente y despues explicaré algo:

program randoms;
uses crt;
const
Max = 90;
type
ConjNum = 1..Max;
Numeros = set of ConjNum;

var
Num : array[1..Max] of integer;
valor,i,j : integer;
conjunto : Numeros;

begin
clrscr;
randomize;
conjunto := [];
for i := 1 to 10 do
begin
repeat
valor := random(90)+1
until (valor in conjunto) = false;

num[i] := valor;
conjunto := conjunto+[valor];
writeln(Num[i])
end;
end.

Bien. Al declarar el tipo ConjNum estableces el rango en que oscilarán el valor de los numeros y que serán los producidos por el random.La funcion REPEAT repetirá el random hasta que el numero producido sea diferete a todos los numeros contenidos en el conjunto; despues se suma el valor del random a la posición correspondiente del vector y tambien en el conjunto para evitar que se
repita.
Espero te solucione el problema.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar