Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/02/2014, 11:17
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Respuesta: Problema con números aleatorios matriz nxn c++

Cuando el tamaño es limitado (como ahora) y los números están en ese rango, es posible usar una estrategia diferente.

Definir un arreglo de 100 booleanos, (o 101, si se quiere usar el nro como indice directamente).
El arreglo se inicializa con false para todos.
A medida que nros aparecen, se "marcan" en este arreglo, cambiando el valor a true.
Para que esto funcione, los nros que aparecen y que hay que considerar son aquellos que estan en ese arreglo con valor false. Los true ya salieron antes por tanto hay que ignorarlos.

Otra alternativa es tener un arreglo de nros a elegir, de tamaño 100, con los nros del 1 al 100 adentro. Se "lanza la moneda" y esto hace elegir uno de ellos. El elegido se intercambia con el que está en la ultima posicion.
En la 2da iteracion, se elige un nro entre los primeros 99, y despues de elegido se intercambia con el que esta en la penultima posicion.
En la 3ra iteracion, se elige un nro entre los primeros 98, y despues de elegido se intercambia con el que esta en la antepenultima posicion
etc.
__________________
Visita mi perfil en LinkedIn