Kleines Nachschlagewerk Informatik
Mathematik
Worum geht es?
Bisher sind die Grundrechenarten bekannt. Java bietet jedoch viele mathematische Funktionen an, die einem das Leben erleichtern. Die wichtigsten sollen hier vorgestellt werden.
Wurzel
Viele Funktionen sind in der sogenannten Math-Klasse gebündelt. Dies trifft auch für die Wurzel (square root - sqrt) zu.

      double wurzelAus16 = Math.sqrt(16.0);
            
Die dritte Wurzel bekommt man einfach mit Math.cbrt (cube root).
Exponenten
Möchte man mit Exponenten, z.B. 12 hoch 3, rechnen, bietet Java die Funktion pow an.

      double zwoelfHochDrei = Math.pow(12.0, 3.0);
            
Modulodivision
Modulodivision ist die Restdivision. Man erhält also den Rest, der bei ganzzahliger Division bleibt. Bezeichnet wird dies in Java mit %, so dass 15 % 4 dann 3 ergibt (15 = 3 * 4 + 3).

Modulodivisionen sind in der Programmierung häufig anzutreffen. Als Beispiel sei ein eindimensionales Array gegeben, welches alle Pixel eines Bildes zeilenweise nacheinander enthält. Nun möchte man zu einer beliebigen Nummer im Array die Zeilenzahl und die Spaltenzahl des Pixels wissen. Dazu teilt man die Nummer durch die Pixelzahl pro Zeile. Die normale ganzzahlige(!) Division ergibt die Zeile, die Moduilo-Division die Spalte.

      int pixelNummer = 3456;
      int pixelProZeile = 480;
      int zeilenNummer = pixelNummer / pixelProZeile;
      int spaltenNummer = pixelNummer % pixelProZeile;
            
Logarithmen
Da man alle Logarithmen als Quotient darstellen kann, braucht man nur den natürlichen Logarithmus.

      double lnVon10 = Math.log(10.0);
            
Der Name ist sehr verwirrend, der dekadische Logarithmus heißt in Java log10.
Pi
Die Kreiszahl π erhält man über Math.PI.

      double radius = 3.0;
      double kreisflaeche = Math.PI * radius * radius;
            
Winkelfunktionen
In der bereits erwähnten Mathe-Klasse befinden sich auch die Winkelfunktionen. Diese verlangen, wie bei allen Programmiersprachen, den Winkel in Bogenmaß (Radiant). Die Argumente sind wie üblich double-Variable.

      double winkelInRadiant =0.1;
      double sinus = Math.sin(winkelInRadiant);
      double cosinus = Math.cos(winkelInRadiant);
      double tangens = Math.tan(winkelInRadiant);
            
Winkel lassen sich zwischen Grad und Radiant einfach umrechnen:

      double winkelInGrad = 45;
      double winkelInRadiant = Math.PI * winkelInGrad / 180.0;
      winkelInGrad = 180.0 * winkelInRadiant / Math.PI;
            
Die Umkehrung der Winkelfunktionen, also die Ermittlung des Winkels aus dem Verhältnis, ist ebenfalls eingebaut.

      double verhaeltnis = 0.707;
      double arcusSinus = Math.asin(verhaeltnis);
      double arcusCosinus = Math.acos(verhaeltnis);
      double arcusTangens = Math.atan(verhaeltnis);