14/07/2011, 02:18
|
| | | Fecha de Ingreso: marzo-2008 Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses 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. |