Neste artigo, daremos uma breve visão geral da classe Math em Java. Vamos falar sobre os métodos desta classe e como utilizá-los. A classe Math reside no pacote java.lang e fornece um conjunto de métodos estáticos para realizar vários cálculos matemáticos diferentes. A seguir estão exemplos de cálculos para os quais a classe Math pode ser útil:
- Cálculo de valores absolutos (valores de módulo)
- Cálculo de valores de funções trigonométricas (senos, cossenos, etc.)
- Elevação em vários graus
- Extraindo raízes de vários graus
- Geração de números aleatórios
- Arredondamento
- Etc.
- abdômen duplo estático (duplo a)
- abs flutuante estático (flutuador a)
- estático int abs(int a)
- abdômen longo estático (longo a)
public static void main(String[] args) {
System.out.println(Math.abs(-1)); // 1
System.out.println(Math.abs(-21.8d)); // 21.8
System.out.println(Math.abs(4532L)); // 4532
System.out.println(Math.abs(5.341f)); // 5.341
}
Cálculo de funções trigonométricas
A classe Math permite calcular várias funções trigonométricas - senos, cossenos, tangentes, etc. Uma lista completa de métodos pode ser encontrada no site oficial da documentação . Abaixo está uma lista desses métodos:- pecado duplo estático (duplo a)
- cos duplo estático (duplo a)
- bronzeado duplo estático (duplo a)
- estático duplo asin (duplo a)
- acos duplo estático (duplo a)
- atan duplo estático (duplo a)
- estático duplo toDegrees (duplo angrad)
- duplo estático para Radianos (angdeg duplo)
public static void main(String[] args) {
System.out.println(Math.sin(Math.toRadians(0)));
System.out.println(Math.sin(Math.toRadians(30)));
System.out.println(Math.sin(Math.toRadians(90)));
System.out.println(Math.cos(Math.toRadians(0)));
System.out.println(Math.cos(Math.toRadians(30)));
System.out.println(Math.cos(Math.toRadians(90)));
}
O programa produzirá:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
O que não corresponde exatamente às tabelas de senos e cossenos, em parte devido a erros na conversão de graus para radianos.
Exponenciação
Para elevar um número a uma potência, a classe Math fornece um método pow, que possui a seguinte assinatura:static double pow(double a, double b)
Este método eleva o parâmetro `a` à potência `b`. Exemplos:
public static void main(String[] args) {
System.out.println(Math.pow(1,2)); // 1.0
System.out.println(Math.pow(2,2)); // 4.0
System.out.println(Math.pow(3,2)); // 9.0
System.out.println(Math.pow(4,2)); // 16.0
System.out.println(Math.pow(5,2)); // 25.0
System.out.println(Math.pow(1,3)); // 1.0
System.out.println(Math.pow(2,3)); // 8.0
System.out.println(Math.pow(3,3)); // 27.0
System.out.println(Math.pow(4,3)); // 64.0
System.out.println(Math.pow(5,3)); // 125.0
}
Extração de raiz
A classe Math fornece métodos para obter raízes quadradas e cúbicas. Os seguintes métodos são responsáveis por este procedimento:- sqrt duplo estático (duplo a)
- cbrt duplo estático (duplo a)
public static void main(String[] args) {
System.out.println(Math.sqrt(4)); // 2.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.cbrt(27)); // 3.0
System.out.println(Math.cbrt(125)); // 5.0
}
Geração de números aleatórios
Para gerar números aleatórios, a classe Math fornece o método aleatório. Este método gera um número real positivo aleatório (duplo) no intervalo de 0,0 a 1,0. A assinatura do método fica assim:public static double random()
Vejamos exemplos:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Após executar o método principal, o seguinte foi exibido no console:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Com um pouco de manipulação, você pode usar o método aleatório da classe Math para obter números aleatórios inteiros situados em um determinado intervalo. Aqui está um exemplo de uma função que recebe dois argumentos min e max e retorna um número inteiro aleatório que está no intervalo de min (inclusive) a max (inclusive):
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
Vamos escrever um método Main no qual testaremos o método randomInARange:
public class MathExample {
public static void main(String[] args) {
// Карта, в которой мы будем хранить количество выпадений Howого-то числа
Map<Integer, Integer> map = new TreeMap<>();
// За 10000 операций
for (int i = 0; i < 10000; i++) {
// Сгенерируем рандомное число от -10 включительно до 10 включительно
final Integer randomNumber = randomInARange(-10, 10);
if (!map.containsKey(randomNumber)) {
// Если карта еще не содержит "выпавшего случайного числа"
// Положим его в карту с кол-вом выпадений = 1
map.put(randomNumber, 1);
} else {
// Иначе, увеличим количество выпадений данного числа на 1
map.put(randomNumber, map.get(randomNumber) + 1);
}
}
// Выведем на экран содержимое карты в формате ключ=[meaning]
for (Map.Entry<Integer, Integer> entry : map.entrySet()){
System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
}
}
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
}
Depois de executar o método principal, a saída pode ficar assim:
-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]
Process finished with exit code 0
Arredondamento
Para arredondar números em Java, uma das ferramentas são os métodos da classe Math. Mais precisamente, os métodos redondo, teto e piso:- rodada longa estática (duplo a)
- rodada int estática (float a)
- piso duplo estático (duplo a)
- teto duplo estático (duplo a)
public static void main(String[] args) {
System.out.println(Math.round(1.3)); // 1
System.out.println(Math.round(1.4)); // 1
System.out.println(Math.round(1.5)); // 2
System.out.println(Math.round(1.6)); // 2
System.out.println(Math.floor(1.3)); // 1.0
System.out.println(Math.floor(1.4)); // 1.0
System.out.println(Math.floor(1.5)); // 1.0
System.out.println(Math.floor(1.6)); // 1.0
System.out.println(Math.ceil(1.3)); // 2.0
System.out.println(Math.ceil(1.4)); // 2.0
System.out.println(Math.ceil(1.5)); // 2.0
System.out.println(Math.ceil(1.6)); // 2.0
}
Conclusão
Neste artigo, demos uma olhada superficial na aula de Matemática. Vimos como usar esta classe você pode:- Calcular valores módulo;
- Calcular valores de funções trigonométricas;
- Elevar números a potências;
- Extraia raízes quadradas e cúbicas;
- Gere números aleatórios;
- Números redondos.
GO TO FULL VERSION