EMZETT.
Login

Mathematische Funktionen

Kurz: Vordefinierte Funktionen für gängige mathematische Operationen (Wurzel, Potenz, Runden, Zufallszahlen, trigonometrische Funktionen usw.), die fast jede Sprache in einer Standardbibliothek mitbringt.

Genauer: Statt Grundoperationen wie Quadratwurzel oder Runden selbst zu implementieren, greifen Programme auf eine mitgelieferte Bibliothek zurück (in Java z. B. die Math-Klasse mit Math.sqrt(), Math.pow(), Math.round()). Das spart nicht nur Zeit, sondern nutzt auch numerisch getestete, performante Implementierungen statt eigener, potenziell fehleranfälliger Berechnungen.

Im Detail

Typische Funktionen, die praktisch jede Standardbibliothek mitbringt:

wurzel(16)        -> 4
potenz(2, 10)      -> 1024
runden(3.7)        -> 4
abrunden(3.7)       -> 3
aufrunden(3.2)      -> 4
absolutwert(-5)     -> 5
minimum(3, 7)      -> 3
maximum(3, 7)      -> 7
zufallszahl(1, 6)   -> zufällige Zahl zwischen 1 und 6 (z. B. für einen Würfel)

Ein häufiger Stolperstein sind die verschiedenen Rundungsfunktionen: “Runden” (zum nächsten Ganzzahlwert, 0.5 wird je nach Sprache auf- oder abgerundet — “Rundung zur geraden Zahl” vs. “immer aufrunden ab .5”), “Abrunden” (immer zur nächstkleineren Ganzzahl) und “Aufrunden” (immer zur nächstgrößeren) liefern bei negativen Zahlen zudem oft überraschende Ergebnisse (aufrunden(-3.2) ergibt -3, nicht -4) — im Zweifel die konkrete Dokumentation der jeweiligen Sprache prüfen statt zu raten.

Wichtig bei Gleitkommazahlen (double/float): Mathematische Funktionen wie wurzel() können nicht exakt darstellbare Zwischenergebnisse liefern (z. B. wurzel(2) ist mathematisch irrational, technisch aber nur mit begrenzter Genauigkeit speicherbar) — ein direkter Gleichheitsvergleich (==) auf das Ergebnis einer solchen Berechnung ist deshalb riskant; stattdessen prüft man üblicherweise, ob der Unterschied kleiner als eine sehr kleine Toleranz ist.

Zufallszahlen-Funktionen verdienen besondere Aufmerksamkeit: Die “normale” zufallszahl()-Funktion der meisten Standardbibliotheken ist für Spiele, Simulationen oder UI-Effekte ausreichend, aber NICHT kryptografisch sicher — für sicherheitsrelevante Zwecke (z. B. Passwort-Token, Session-IDs) braucht es stattdessen eine dedizierte kryptografisch sichere Zufallsfunktion.

Siehe auch: double, Type Casting