Лучше, чем если бы еще, если бы еще ... для линейной интерполяции

вопрос прост. Допустим, у вас есть функция

double interpolate (double x);

и у вас есть таблица с картой известных x- & gt; Y
например
5 15
7 18
10 22
note: реальные таблицы больше, это всего лишь пример.

так что для 8 вы бы вернули 18 + ((8-7) / (10-7)) * (22-18) = 19,3333333

Один классный способ, который я нашел, это http://www.bnikolic.co.uk/blog/cpp-map-interp.html (Короче говоря, он использует std :: map, key = x, value = y для пар данных x-> g).

Если кто-то спросит, что, если еще, если еще путь в заголовке это в основном:

if ((x>=5) && (x<=7))
{
//interpolate
}
else 
     if((x>=7) && x<=10)
     {
      //interpolate
     }

Так есть ли более умный способ сделать это, или карта - это современный уровень? :)

Между прочим, я предпочитаю подделки в C ++, но, очевидно, любое языковое решение с отображением 1: 1 в C ++ - это хорошо.

Ответы на вопрос(6)

Ваш ответ на вопрос