Pascal/Turbo Pascal - Problema con Algoritmo

 
Vista:

Problema con Algoritmo

Publicado por Alex99 (1 intervención) el 15/08/2003 09:41:32
Hola Amigos, mi problema es el siguiente:
Tengo un array de 500 numeros aleatorios comprendidos entre 0-99 obtenidos de la siguiente forma

var
num:array[1..500] of integer; {da lo mismo que sean de tipo real}
begin
randomize;
for i:=1 to 500 do
num[ i ]:=succ(random(99));

Necesito sacar de ese arreglo el intervalo de los primeros 100 numeros diferentes (0-99) , incluyendo los que se repiten, comenzando en orden inverso (para i=500 seria el primer numero), osea me explico de otra manera:
si el intervalo final me da desde i=500 hasta i=377 eso querria decir que en 123 aparecio el ultimo numero diferente, entonces habria 100 numeros diferentes (0-99) y 23 de ellos que se repiten, claro manteniendo el orden en que aparecen.
Espero que me entiendan amigos y gracias por dedicarme un ratito de su preciado tiempo .Saludos Alex.
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:Problema con Algoritmo

Publicado por Diego Romero (786 intervenciones) el 16/08/2003 04:42:05
Tu deducción de que en 123 números aleatorios comprendidos entra 0 y 99 va a haber 100 números unicos mas 23 que se repetiran con otros 23 de los primeros cien no es correcto. Dada la naturaleza aleatoria de la generación de esos números puede que en 123 números nunca aparezca un numero cualquiera o varios de ellos lo que te hace suponer que habrá más de 23 repetidos.
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:Problema con Algoritmo

Publicado por Alex99 (1 intervención) el 17/08/2003 10:23:37
Muchas gracias Diego por dedicarme tu atencion,entendiste muy bien la idea o sea, la primera parte, pero la segunda no, es precisamente lo que busco, 123 numeros no es una ley que siempre se va a cumplir solo es un ejemplo que puse porque soy malo explicando, pero claro que puede ser mayor el intervalo asi como menor, o sea el intervalo perfecto(ideal) seria 100, donde no habria ninguno repetido, y los repetidos serian una especie de error (por llamarlo de alguna manera) que se introduce, que a su vez es totalmente aleatorio y precisamente ese es el intervalo que yo quiero definir,dado un numero maximo de numeros aleatorios (500,1000...etc) comenzando por el, definir el intervalo donde aparezcan 100 diferentes(incluyendo los que se repiten). Si tengo esos numeros en un arreglo, comenzar a compararlos y parar cuando los diferentes sean 100, a medida que se vaya disminuyendo el numero maximo del arreglo. Te repito muchas gracias Diego y espero tu respuesta, aunque sea que me des una idea porque yo tengo la mia de como hacerlo pero todavia no me ha dado resultado y no dispongo de mucho tiempo puesto que tengo que trabajar en muchas cosas mas interface grafica etc..(es un trabajo de curso).
Saludos, Alex 99
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:Problema con Algoritmo

Publicado por Diego Romero (786 intervenciones) el 17/08/2003 23:48:26
Entendí que solo se trataba de un ejemplo. Yo lo usé para explicar mi punto de vista.
Ahora bién, entiendo cual es el problema que tienes que resolver: encontrar un intervalo de N elementos compuestos por C simbolos tales que en el intervalo N no se repitan ninguno de los elementos C, es decir sean unívocos en el intervalo (¿es esto correcto?).
Supongo que la solución que has pensado es la de tomar un N arbitrario y comparar todos sus elementos entre ellos. Tal vez el proceso se haría más rápido si ordenaras el array de menor a mayor.
Pensaré en algo más.
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