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

Это был вопрос, который мне задали на моем недавнем интервью, и я хочу знать (я не на самом деле помните теорию численного анализа, поэтому, пожалуйста, помогите мне :)

Если у нас есть функция, которая накапливает числа с плавающей точкой:

std::accumulate(v.begin(), v.end(), 0.0);

v - это std :: vector , например.

  • Было бы лучше отсортировать эти числа перед их накоплением?

  • Какой порядок даст наиболее точный ответ?

Я подозреваю, что сортировка чисел в По возрастанию числовая ошибка будет меньше , но, к сожалению, я не могу этого доказать.

PS Я понимаю, что это, вероятно, не имеет ничего общего с программированием в реальном мире, просто из любопытства.

105
задан Rakete1111 27 May 2017 в 21:43
поделиться