[ Foro de Pascal ]

vector de numeros aleatorios con restriccion

13-Jan-2012 17:00
oscar gomez
2 Respuestas

Hola profesor Nacho cabanes y colaboradores de tan excelente labor de enseñar.
Profesor queria pedir tu ayuda, con respecto a como podria ser la codificacion o el seudocodigo para generar un vector porejemplo de 12 posiciones donde sus elementos sean numeros aleatorios asegurando o validando que  los numeros no se graben en dicho vector mas de dos veces aleatriamente hablando como entendera a la final  profesor tendriamos un vector de parejas sin importar que esten ordenados.
le agradezco cualquier ayuda al respecto profesor ,dejando de ante mano mi gratitud a tu valiosa ayuda.


20-Jan-2012 09:57
Nacho Cabanes (+84)

Si los 12 números que hay que mostrar son exactamente los números del 1 al 12 (o del 0 al 11), la solución es generar el vector ordenado y luego desordenarlo, como estamos hablando en el otro hilo del foro.

Si son 12 números en un rango más amplio (por ejemplo, del 1 al 1000), habría que generarlos dentro de un repeat-until, para verificar que no aparece entre los números anteriores, y volver a obtener un nuevo valor al azar en caso de que sí ocurra:

para n entre 1 y 12
 repetir
   yaUsado = falso
   generar dato[n]
   si dato[n] aparece en dato[1]..dat[n-1]
     yaUsado = true;
   finSi
   hasta yaUsado = false
fin para

(lo de si aparece entre los datos anteriores es simplemente recorrerlos con un "for")


20-Jan-2012 10:06
oscar gomez

Buenos dias profesor Nacho cabanes.
Mil gracias, excelente tu explicacion y en especial la forma en que nos lo indicas a traves de seudocodigo,muy entendible,con ello para mi el hilo esta ya superado gracias a ti.mil gracias por tu tiempo profesor.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)