La
clase Math ya viene incluida en
nuevas versiones de Java, por lo que no habrá que importar ningún paquete para
ello.
Para
utilizar esta clase, debemos escribir Math.método(parámetros); donde
método será uno de los siguientes y parámetros aquellos que tengamos que usar.
Un método puede estar sobrescrito para distintos tipos de datos.
Recuerda que si almacenas el resultado de la función, debe coincidir con el tipo de la variable.
Algunos de los métodos más comunes:
- abs(x): Devuelve el valor absoluto de x.
- ceil(x): Devuelve el entero más pequeño que es mayor o igual a x.
- floor(x): Devuelve el entero más grande que es menor o igual a x.
- max(x, y): Devuelve el mayor de x e y.
- min(x, y): Devuelve el menor de x e y.
- pow(x, y): Devuelve x elevado a la potencia de y.
- random(): Devuelve un número aleatorio entre 0 y 1.
- round(x): Devuelve el entero más cercano a x.
- sqrt(x): Devuelve la raíz cuadrada de x.
Vemos algunos ejemplos:
public class Uso_Math {
public static void main(String[] args) {
double operador1=25.5;
double operador2=15.21;
System.out.println(Math.ceil(operador1)); // Devuelve
26.0
System.out.println(Math.floor(operador2)); //Devuelve
15.0
System.out.println(Math.pow(operador1, operador2)); // Devuelve
2.474435537975361E21
System.out.println(Math.max(operador1, operador2)); //Devuelve 25.5
System.out.println(Math.sqrt(operador1)); ////Devuelve
5.049752469181039
}
}
Para poder generar
números con el método Math.random, por defecto sería, Math.random(), con
este método podemos generar números aleatorios, en principio seria entre 0 y 1,
pero esto lo podemos cambiar para que genere un número entre un rango que
nosotros deseemos. Para generar un número entre 0 y el número que deseemos,
debemos escribir *num_deseado, por ejemplo, Math.random()*30, esto
genera números entre 0 y 30, este último no se incluye, el máximo sería 29,9999…
Para generar
un número entre un número que deseemos a otro, debemos escribir *(num_minimo-num_maximo)+num_maximo,
por ejemplo, Math.random()*(5-20)+20.
Un buen
truco, para recordar esto es multiplicar por 0 para saber el mínimo y por 1
para el máximo. Por ejemplo, en el ejemplo anterior, el mínimo seria 5, ya
que 0*(5-20)+20 daría como resultado 5, y el
máximo seria 20, ya que 1*(20-5)+5 daría como resultado 20.
Por último, haremos que el número generado sea un número entero en lugar de uno
de coma flotante, para ello escribimos (int)Math.floor(Math.random()*(num_maximo-num_minimo)+num_minimo). Recordar
que en lugar de números podemos usar variables. Veamos unos ejemplos:
public class Uso_Math {
public static void main(String[] args) {
int num1=50;
int num2=120;
System.out.println("Números generados entre 0 y 20, con decimales (sin incluir
el 0 y el 20)");
for (int i=0;i<1000;i++){
double numAleatorio=Math.random()*20;
System.out.println(numAleatorio);
}
System.out.println("Números generados entre 5 y 20, con decimales (sin incluir
el 5 y el 20)");
for (int i=0;i<1000;i++){
double numAleatorio=Math.random()*(20-5)+5;
System.out.println(numAleatorio);
}
System.out.println("Números generados entre 50 y 120, sin decimales (sin
incluir el 50 y el 120)");
for (int i=0;i<1000;i++){
int numAleatorio=(int)Math.floor(Math.random()*(num1-num2)+num2);
System.out.println(numAleatorio);
}
System.out.println("Números generados entre 50 y 120, sin decimales
(incluyendo el 50 y el 120)");
for (int i=0;i<1000;i++){
int numAleatorio=(int)Math.floor(Math.random()*(num1-(num2+1))+(num2));
System.out.println(numAleatorio);
}
}
}
1.3.3 Constantes << >> 1.5 CLASE STRING
No hay comentarios:
Publicar un comentario