In questo articolo forniremo una breve panoramica della classe Math in Java. Parliamo dei metodi di questa classe e di come usarli. La classe Math risiede nel pacchetto java.lang e fornisce una serie di metodi statici per eseguire una serie di calcoli matematici diversi. Di seguito sono riportati esempi di calcoli per i quali la classe Math può essere utile:
- Calcolo dei valori assoluti (valori modulo)
- Calcolo dei valori delle funzioni trigonometriche (seno, coseno, ecc.)
- Elevazione a vari gradi
- Estrazione di radici di vario grado
- Generazione di numeri casuali
- Arrotondamento
- Eccetera.
- doppi addominali statici (doppia a)
- addominali flottanti statici (float a)
- statico int abs(int a)
- addominali lunghi statici (lunga 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
}
Calcolo dei valori delle funzioni trigonometriche
La classe Math ti consente di calcolare varie funzioni trigonometriche: seno, coseno, tangente, ecc. Un elenco completo dei metodi può essere trovato sul sito web della documentazione ufficiale . Di seguito è riportato un elenco di questi metodi:- doppio peccato statico (doppia a)
- doppio cos statico (doppio a)
- doppia abbronzatura statica (doppia a)
- doppio asin statico (doppia a)
- doppio acos statico (doppia a)
- doppio atan statico (doppia a)
- statico double toGradi(doppio angrad)
- statico double toRadianti(doppio angdeg)
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)));
}
Il programma produrrà:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
Che non corrisponde del tutto alle tabelle dei seni e dei coseni, anche a causa di errori nella conversione da gradi a radianti.
Esponenziazione
Per elevare un numero a potenza, la classe Math fornisce un metodo pow, che ha la seguente firma:static double pow(double a, double b)
Questo metodo eleva il parametro "a" alla potenza "b". Esempi:
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
}
Estrazione della radice
La classe Math fornisce metodi per ricavare radici quadrate e cubiche. I seguenti metodi sono responsabili di questa procedura:- doppio quadrato statico (doppia a)
- doppio cbrt statico (doppia 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
}
Generazione di numeri casuali
Per generare numeri casuali, la classe Math fornisce il metodo random. Questo metodo genera un numero reale (doppio) positivo casuale compreso tra 0,0 e 1,0. La firma del metodo è simile alla seguente:public static double random()
Diamo un'occhiata agli esempi:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Dopo aver eseguito il metodo main, sulla console veniva visualizzato quanto segue:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Con un po' di manipolazione è possibile utilizzare il metodo casuale della classe Math per ottenere numeri interi casuali compresi in un determinato intervallo. Ecco un esempio di una funzione che accetta due argomenti min e max e restituisce un numero intero casuale compreso nell'intervallo da min (incluso) a max (incluso):
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
Scriviamo un metodo Main in cui testeremo il metodo 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;
}
}
Dopo aver eseguito il metodo principale, l'output potrebbe assomigliare a questo:
-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
Arrotondamento
Per arrotondare i numeri in Java, uno degli strumenti sono i metodi della classe Math. Più precisamente i metodi round, ceil e floor:- tondo lungo statico (doppia a)
- statico int round(float a)
- doppio pavimento statico (doppia a)
- doppia cella statica (doppia 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
}
Conclusione
In questo articolo abbiamo dato uno sguardo superficiale alla lezione di matematica. Abbiamo esaminato come utilizzando questa classe puoi:- Calcola valori modulo;
- Calcolare i valori delle funzioni trigonometriche;
- Elevare i numeri a potenze;
- Estrarre radici quadrate e cubiche;
- Generare numeri casuali;
- Numeri tondi.
GO TO FULL VERSION