Ver Mensaje Individual
  #26 (permalink)  
Antiguo 26/11/2013, 04:26
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Número aleatorio pero evitando uno en particular

Sé de los peligros que tiene la fuerza bruta, y también que es mas cómodo utilizar alguno de los otros dos métodos porque sus tiempos de ejecución no dependen de probabilidades, son constantes en relación a los datos de entrada.

Y puestos a elegir entre los constantes, ¿por qué usas shuffle en vez del array_rand? El trabajo que hace array_rand es mas ligero que el de shuffle cuando sólo necesitas obtener una porción aleatoria del array original. La diferencia de tiempos se incrementa cuanto mayor es la diferencia entre el rango total de números, y la cantidad de números que quieres obtener. Haz la prueba usando sólo esas dos funciones, array_rand gana mientras la proporción de elementos a devolver sea menor a 4/5. Cuando el array a devolver es casi tan grande como el que crea range, es evidente que lo mejor es shuffle.