El enfoque me parece más lento así; yo crearía un array con los
números que SACO al azar, y no con todos; generar un número aleatorio dentro
de un rango no tiene más complicación que jugar con decimales.

        ¿Porqué pongo los que voy "calculando", y no todos? Pues porque voy
a tener que buscar en el array si está o no está el nuevo número que se
calcula al azar, con lo cuál, cuánto más pequeño sea el array, mejor.

        Y para 100 números, este planteamiento siempre será más rápido hasta
la mitad... O sea hasta 50 números; si se calculan más, pues entonces
vuestro planteamiento es igual de rápido.. (A partir de 50 calculados,
resulta que calcularlos como decís vosotros es más rápido que como digo yo)

        Más que nada para mi es la "costumbre" de no crear nada hasta que lo
necesito.. Y en este caso opino que es así (Gracias a Manu -y otros- por sus
sabios consejos en este ámbito)

        Un saludo.

> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Emiliano 
> Velasco - Salas
> Enviado el: martes, 08 de noviembre de 2005 11:16
> Para: [email protected]
> Asunto: RE: [ASNativos] Rango aleatoreo sin repetición
> 
> Hola Rafael, 
> Mira, se me ocurre rápidamente.
> Puedes hacer un array con los valores que tú tienes disponible.
> Tipo:
> Var disponible:Array = new Array()
> For..... e<100...
> 
> Y ya tienes tus números que pueden ser al azar.
> 
> Ahora, vamos a la parte de random, pues creas una función que 
> haga un random
> de la cantidad de registros en el array, tipo. Disponibles.lenght
> 
> Luego, si te tira: 22, pues lo levantas, y luego lo eliminas 
> del array.
> Entonces, tienes una posición menos dentro del array, ahora 
> esta en 99,
> luego, si llamas de nuevo, y te toca 22 nuevamente (puede 
> pasar) ya el valor
> sera otro, y lo mismo... te quedaras con 98.... y así.
> 
> Un saludo,
> Emiliano Velasco
> 
> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre
> de Rafael Martinez-AsNativo
> Enviado el: Martes, 08 de Noviembre de 2005 11:15 a.m.
> Para: [email protected]
> Asunto: [ASNativos] Rango aleatoreo sin repetición
> 
> Buenos días,
> Necesito crear una función que no tengo muy claro como hacer.
> La idea es generar un número aleatorio de enteros por ej. de 
> 1 a 100 pero 
> que al ejecutar nuevamente la función los números que han 
> salido no puedan 
> repetirse.
> La idea es que finalmente salgan todos los números 
> aleatoriamente del rango 
> pero sin repetirse.
> Para generar el rango por ej. de 1 a 100 sería:
> var a:Number=1// numero inicio
> var b:Number=100//numero final
> var numAzar:Number=Math.floor((b-a)*Math.random()+a)
> Pero solo llego hasta aquí  :(.
> Para hacer la exclusión de los números ya aparecidos .... ni idea.
> Gracias
> ---------------------------------------------
> Rafael Martínez
> [ www.fabricanet.com ]
> --------------------------------------------- 
> 
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------
> 
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a