JavaScript nos proporciona un método para obtener números aleatorios a través del objeto Math, pero este método devuelve un número decimal entre 0 y 1 que a priori parece poco util. Lo interesante es obtener un número entero entre 0 y 10 por ejemplo. Primero, veamos como obtener ese número entre 0 y 1:
<script type="text/javascript">
var aleatorio = Math.random();
alert(aleatorio);
</script>
Con este código obtendremos el mencionado número, entre 0 y 1 y además lo veremos impreso en una ventana.
Pero seguramente nos será más util, un número entre 0 y 10 por ejemplo. Veamos como:
<script type="text/javascript">
var aleatorio = Math.round(Math.random()*10);
alert(aleatorio);
</script>
Con esto obtendremos un número entre 0 y 10, ambos incluídos. Lo único que hemos hecho ha sido multiplicar por 10 y luego redondear el número. Si lo que queremos es un número entre 0 y cualquier otro número, entonces ya está, no necesitamos más, pero si queremos un intervalo distinto, como por ejemplo entre 15 y 40 este código no nos sirve, tenemos que hacerle un pequeño arreglo, como aquí:
<script type="text/javascript">
function aleatorio(a,b) {
return Math.round(Math.random()*(b-a)+a);
}
</script>
Hemos creado una función que devuelve números aleatorios entre 'a' y 'b'. Suponiendo que a = 15 y b = 40 primero se haría:
Math.random()*(b-a)
Lo que da un número entre 0 y 25 (con números decimales). Entonces sumamos 'a', para tener un número entre 15 y 40, todavía con decimales y por último, utilizamos Math.round() para eliminar los decimales.
Cualquiera de los tres métodos es válido, pero el último es el más utilizado y el más util.
Alex.
|