Задание № 448

Студент

Епифанов Ростислав

Задача

Обобщённый итерационный алгоритм

Состояние

Завершено

Баллов

2

Дедлайн
22 февраля 2016
Назначено

08.02.2016, 09:37

Завершено

22.02.2016, 08:17

Реализовать обобщённый итерационный алгоритм вычисления квадратного корня (и не только), в котором все детали вынесены в функторы, в виде функции iterate.

Потребуется три функтора:

  • initial – функтор, вычисляющий начальное приближение. Для квадратного корня из x можно взять x/2.
  • next – функтор, строящий следующее приближение. Для квадратного корня: (y + x/y)/2, где x – аргумент функции корня, а y – текущее приближение.
  • enough – предикат, оценивающий точность. Если он возвращает true, итерационную процедуру можно завершить. Для квадратного корня можно взять fabs(x - y*y) < 1e-8, где x и y имеют тот же смысл, что и выше.

Таким образом, шаблонная функция iterate будет иметь четыре параметра шаблона: тип значения и три функтора.

Действия