La funzione hypot(x, y) in C++
Oggi parliamo della funzione hypot(x, y) nel linguaggio di programmazione C++.
hypot(x,y)
Questa funzione prende due valori, che possono essere float, double o long double, e restituisce la radice quadrata della somma dei loro quadrati.
$$ \sqrt{x^2+ y^2} $$
In pratica calcola l'ipotenusa di un triangolo se conosci la lunghezza dei cateti.
E' particolarmente utile in situazioni dove devi calcolare la distanza tra due punti in uno spazio bidimensionale.
L'ipotenusa di un triangolo rettangolo è il lato opposto all'angolo retto, e la sua lunghezza può essere calcolata utilizzando il Teorema di Pitagora. Se hai due lati di un triangolo rettangolo, diciamo `x` e `y`, la lunghezza dell'ipotenusa è la radice quadrata della somma dei quadrati di `x` e `y`. In formula, è \(\sqrt{x^2 + y^2}\).
La funzione hypot() si trova nella libreria <cmath>, quindi per poterla utilizzare devi includere il modulo nel tuo programma.
Vediamo un esempio pratico in C++:
- #include <iostream>
- #include <cmath>
- int main() {
- double x = 3.0;
- double y = 4.0;
- double ipotenusa = hypot(x, y);
- std::cout << "L'ipotenusa di un triangolo rettangolo con lati " << x << " e " << y << " è " << ipotenusa << std::endl;
- return 0;
- }
In questo esempio, abbiamo un triangolo rettangolo con i lati di lunghezza 3 e 4.
Usando la funzione hypot, calcoliamo l'ipotenusa, che, come ci aspettiamo dalla geometria, è 5.
L'ipotenusa di un triangolo rettangolo con lati 3 e 4 è 5
Perché usare hypot(x, y) invece di calcolare manualmente \(\sqrt{x^2 + y^2}\)?
Ci sono principalmente due motivi: precisione e sicurezza. La funzione `hypot` gestisce internamente alcuni problemi come l'overflow e l'underflow che possono accadere durante il calcolo dei quadrati di numeri molto grandi o molto piccoli.
Questa funzione è un esempio classico di come la matematica e la programmazione si incontrano per risolvere problemi pratici.