Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/07/2011, 02:18
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Fondo variable

Ya lo entendí, Math.random() te da un número aleatorio entre 0 y 1, tú lo multiplicas por el tamaño del array menos 1 (en este caso 2), luego tendrás un número entre 0 y 2.

Luego lo pasas por Math.ceil(), este método te da el entero inmediatamente superior (la función techo matemática). Por ejemplo, ceil(3)=3 y ceil(3.4)=4. Ves por dónde voy? Tal y como está, el resultado sólo será 1 o 2, ya que si el random te da 0.1, el ceil es 1.

Para solucionarlo, cambia ceil() por round(), de esta forma tendrás un redondeo. De un número entre 0 y 2 obtendrás, 0 cuando esté en [0, 0'5), 1 cuando esté en [0'5, 1'5) y 2 cuando esté en [1'5, 2].

De todas formas, ya que estamos con matemáticas, este método no es realmente randómico, ya que hay más posibilidades de que salga 1 a que salga 0 y 2, concretamente el doble.

Un saludo.