РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
390 of 1593 menu

Функция math.Hypot

Функция math.Hypot вычисляет евклидову гипотенузу, то есть квадратный корень из суммы квадратов двух чисел. В первый параметр передается значение катета x, во второй параметр передается значение катета y. Функция возвращает значение типа float64, равное sqrt(x*x + y*y). Особенность данной функции заключается в том, что она предотвращает переполнение и потерю точности, которые могут возникнуть при прямом возведении больших чисел в квадрат.

Синтаксис

math.Hypot(x, y float64) float64

Пример

Давайте вычислим гипотенузу прямоугольного треугольника с катетами 3 и 4:

package main import ( "fmt" "math" ) func main() { res := math.Hypot(3, 4) fmt.Println(res) }

Результат выполнения кода:

5

Пример

Функция math.Hypot особенно полезна при работе с большими числами, где прямое вычисление может вызвать переполнение. Давайте сравним результат прямой операции и функции для больших чисел:

package main import ( "fmt" "math" ) func main() { x := 1e200 y := 1e200 direct := math.Sqrt(x*x + y*y) hypot := math.Hypot(x, y) fmt.Println("Прямое вычисление:", direct) fmt.Println("math.Hypot:", hypot) }

Результат выполнения кода:

"Прямое вычисление: +Inf" "math.Hypot: 1.414213562373095e+200"

Пример

Функция math.Hypot также может использоваться для вычисления расстояния между двумя точками в двумерном пространстве:

package main import ( "fmt" "math" ) func main() { x1, y1 := 0.0, 0.0 x2, y2 := 5.0, 5.0 dx := x2 - x1 dy := y2 - y1 distance := math.Hypot(dx, dy) fmt.Println(distance) }

Результат выполнения кода:

7.0710678118654755

Смотрите также

  • функцию math.Sqrt,
    которая вычисляет квадратный корень числа
  • функцию math.Pow,
    которая возводит число в указанную степень
  • функцию math.Abs,
    которая возвращает абсолютное значение числа
  • функцию math.Max,
    которая возвращает большее из двух чисел
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить