Алгоритм hypot для 3 и более элементов

133
27 августа 2019, 23:20

Существует ли аналог алгоритма std::hypot() для вектора с 3+ элементами в стандартной библиотеке? Если нет, то можно предложить подобный по функционалу алгоритм?

Answer 1

Раз могут возникнуть проблемы с переполнением, то можно использовать ту же технику, что и в hypot:

Выбирается максимальное по модулю значение из вектор

AMax = Max(Abs(V[i]))

Вычисляется сумма квадратов нормированных на этот максимум компонентов

for all:
   nv = V[i] / AMax
   sum += nv * nv

Извлекается корень и возвращается нужный порядок

  hyp = AMax * Sqrt(sum)

Можно также отсортировать компоненты и суммировать с минимальных по модулю либо использовать алгоритм Кэхэна.

READ ALSO
Stak around the variable was corrupted

Stak around the variable was corrupted

Такая вот проблема, пишу алгоритм для расчёта полинома Ньютона и сталкиваюсь с этой ошибкой

140
Стек, ошибка Access violation at address с разными размерами

Стек, ошибка Access violation at address с разными размерами

Дана задача: создать стек из чисел, найдти среднее арифметическое и удалить елементы меньше егоC++ Builder6

134
c++ вычислить значение выражения

c++ вычислить значение выражения

Во входном потоке задано три вещественных числа a (a > 0), b (b < 0), x (-1 < x < 1)Значения исходных данных подобраны так, что выражение имеет смысл

126
С++ олимпиадная задача

С++ олимпиадная задача

Старый пират Пью спрятал свое золото, но для надежности не в одном месте, а частями в нескольких тайникахНо чтобы не забыть места хранения...

112