Guide de la classe de mathématiques Java

Guide de la classe de mathématiques Java

1. introduction

Dans ce didacticiel, nous allons décrire la classeMath qui fournit des méthodes statiques utiles pour effectuer des opérations numériques telles que l'exponentielle, le logarithme, etc.

2. Fonctions mathématiques de base

Le premier ensemble de méthodes que nous allons couvrir sont les fonctions mathématiques de base telles que la valeur absolue, la racine carrée, le maximum ou le minimum entre deux valeurs.

2.1. abs()

La méthodeabs() renvoie la valeur absolue d'une valeur donnée:

Math.abs(-5); // returns 5

De même, parmi d'autres que nous verrons ensuite,abs() accepte comme paramètre unint, long, float oudouble et renvoie le relatif.

2.2. pow()

Calcule et retourne la valeur du premier argument élevé à la puissance du second:

Math.pow(5,2); // returns 25

Nous discutons cette méthode plus en détail danshere.

2.3. sqrt()

Renvoie la racine carrée positive arrondie d'undouble:

Math.sqrt(25); // returns 5

Si l'argument estNaN ou inférieur à zéro, le résultat estNaN.

2.4. cbrt()

De même,cbrt() renvoie la racine cubique d'undouble:

Math.cbrt(125); // returns 5

2.5. max()

Comme le nom de la méthode l’indique, elle renvoie le maximum entre deux valeurs:

Math.max(5,10); // returns 10

Là encore, la méthode accepteint, long, float oudouble.

2.6. min() 

De la même manière,min() renvoie le minimum entre deux valeurs:

Math.min(5,10); // returns 5

2.7. random()

Renvoie undouble  pseudo-aléatoire supérieur ou égal à 0,0 et inférieur à 1,0:

double random = Math.random()

Pour ce faire,the method creates a single instance of java.util.Random() number generator when it is called for the first time. 

Après cela, pour tous les appels à cette méthode, la même instance est utilisée. Notez que la méthode est synchronisée et peut donc être utilisée par plusieurs threads.

Nous pouvons trouver plus d'exemples sur la façon de générer un aléatoire enthis article.

2.8. signum()

Est utile lorsque nous devons connaître le signe de la valeur:

Math.signum(-5) // returns -1

Cette méthode retourne 1.0 si l'argument est supérieur à zéro ou -1.0 sinon. Si l'argument est zéro positif ou zéro négatif, le résultat est le même que l'argument.

L'entrée peut être unfloat  ou undouble.

2.9. copySign()

Accepte deux paramètres et retourne le premier argument avec le signe du second argument:

Math.copySign(5,-1); // returns -5

Les arguments peuvent également êtrefloat oudouble.

3. Fonctions exponentielles et logarithmiques

En plus des fonctions mathématiques de base,the Math class contains methods to solve exponential and logarithmic functions.

3.1. exp()

La méthodeexp() reçoit un argumentdouble et renvoie le nombre d'Euler élevé à la puissance de l'argument (ex):

Math.exp(1); // returns 2.718281828459045

3.2. expm1()

Similaire à la méthode ci-dessus,expm1() calcule le nombre d'Euler élevé à la puissance de l'argument reçu, mais il ajoute -1 (ex -1):

Math.expm1(1); // returns 1.718281828459045

3.3. log()

Renvoie le logarithme naturel d'une valeurdouble:

Math.log(Math.E); // returns 1

3.4. log10()

Il retourne le logarithme en base 10 de l'argument:

Math.log10(10); // returns 1

3.5. log1p()

De même lelog(),  mais il ajoute 1 à l'argument ln (1 + x):

Math.log1p(Math.E); // returns 1.3132616875182228

4. Fonctions trigonométriques

Lorsque nous devons travailler avec des formules géométriques, nous avons toujours besoin de fonctions trigonométriques; la classeMath les fournit pour nous.

4.1. sin()

Reçoit un argument unique,double qui représente un angle (en radians) et renvoie le sinus trigonométrique:

Math.sin(Math.PI/2); // returns 1

4.2. cos()

De la même manière,cos() renvoie le cosinus trigonométrique d'un angle (en radians):

Math.cos(0); // returns 1

4.3. tan()

Renvoie la tangente trigonométrique d'un angle (en radians):

Math.tan(Math.PI/4); // returns 1

4.4. sinh(), cosh(), tanh()

Ils renvoient respectivement le sinus hyperbolique, le cosinus hyperbolique et la tangente hyperbolique d'une valeurdouble:

Math.sinh(Math.PI);

Math.cosh(Math.PI);

Math.tanh(Math.PI);

4.5. un péché()

Renvoie l'arc sinus de l'argument reçu:

Math.asin(1); // returns pi/2

Le résultat est un angle compris entre -pi / 2 etpi / 2.

4.6. acos()

Renvoie l'arc cosinus de l'argument reçu:

Math.acos(0); // returns pi/2

Le résultat est un angle compris entre 0 etpi.

4.7. atan()

Renvoie l'arc tangente de l'argument reçu:

Math.atan(1); // returns pi/4

Le résultat est un angle compris entre -pi / 2 etpi / 2.

4.8. atan2()

Enfin,atan2() reçoit la coordonnée ordonnéey et la coordonnée abscissex, et renvoie l'angleϑ de la conversion des coordonnées rectangulaires(x,y) en coordonnées polaires(r, ϑ):

Math.atan2(1,1); // returns pi/4

4.9. toDegrees()

Cette méthode est utile lorsque nous avons besoin de convertir des radians en degrés:

Math.toDegrees(Math.PI); // returns 180

4.10. toRadians()

Par contretoRadians() est utile pour faire la conversion inverse:

Math.toRadians(180); // returns pi

Rappelez-vous que la plupart des méthodes que nous avons vues dans cette section acceptent l'argument en radians. Ainsi, lorsque nous avons un angle en degrés, cette méthode doit être utilisée avant d'utiliser une méthode trigonométrique.

Pour plus d'exemples, regardez danshere.

5. Arrondi et autres fonctions

Enfin, examinons les méthodes d'arrondi.

5.1. ceil()

ceil() est utile lorsque nous devons arrondir un entier à la plus petite valeurdouble qui est supérieure ou égale à l'argument:

Math.ceil(Math.PI); // returns 4

Dansthisarticle, nous utilisons cette méthode pour arrondir un nombre à la centaine la plus proche.

5.2. floor()

Pour arrondir un nombre au plus granddouble inférieur ou égal à l'argument, nous devons utiliserfloor():

Math.floor(Math.PI); // returns 3

5.3. getExponent()

Retourne un exposant non biaisé de l'argument.

L'argument peut être undouble ou unfloat:

Math.getExponent(333.3); // returns 8

Math.getExponent(222.2f); // returns 7

5.4. IEEEreminder()

Calcule la division entre le premier (dividende) et le deuxième argument (diviseur) et renvoie le reste comme prescrit par lesIEEE 754 standard:

Math.IEEEremainder(5,2); // returns 1

5.5. nextAfter()

Cette méthode est utile lorsque nous avons besoin de connaître le voisinage d'une valeurdouble oufloat:

Math.nextAfter(1.95f,1); // returns 1.9499999

Math.nextAfter(1.95f,2); // returns 1.9500002

Il accepte deux arguments, le premier est la valeur dont vous voulez connaître le nombre adjacent et le second est la direction.

5.6. nextUp()

De même que la méthode précédente, mais celle-ci ne renvoie la valeur adjacente que dans le sens d'un infini positif:

Math.nextUp(1.95f); // returns 1.9500002

5.7. rint()

Renvoie undouble t qui est la valeur entière la plus proche de l'argument:

Math.rint(1.95f); // returns 2.0

5.8. round()

De la même manière que la méthode ci-dessus, mais celle-ci renvoie une valeurint si l'argument est unfloat et une valeurlong si l'argument est undouble:

int result = Math.round(1.95f); // returns 2

long result2 = Math.round(1.95) // returns 2

5.9. scalb()

Scalb est l'abréviation de «scale binary». Cette fonction exécute un décalage, une conversion et une double multiplication:

Math.scalb(3, 4); // returns 3*2^4

5.10. ulp()

La méthodeulp() renvoie la distance entre un nombre et ses voisins les plus proches:

Math.ulp(1); // returns 1.1920929E-7
Math.ulp(2); // returns 2.3841858E-7
Math.ulp(4); // returns 4.7683716E-7
Math.ulp(8); // returns 9.536743E-7

5.11. hypot()

Renvoie la racine carrée de la somme des carrés de son argument:

Math.hypot(4, 3); // returns 5

La méthode calcule la racine carrée sans dépassement intermédiaire ou dépassement intermédiaire.

Enthis article, nous utilisons cette méthode pour calculer la distance entre deux points.

6. Fonctions mathématiques Java 8

La classeMath  a été revue dans Java 8 pour inclure de nouvelles méthodes pour effectuer les opérations arithmétiques les plus courantes.

Nous avons discuté de ces méthodesin another article.

7. Champs de constantes

En plus des méthodes,Math class déclare deux champs constants:

public static final double E

public static final double PI

Qui indiquent la valeur la plus proche de la base des logarithmes naturels et la valeur la plus proche depi, respectivement.

8. Conclusion

Dans cet article, nous avons décrit les API fournies par Java pour les opérations mathématiques.

Comme d'habitude, tous les extraits de code présentés ici sont disponiblesover on GitHub.