Лучше, чем если бы еще, если бы еще ... для линейной интерполяции
вопрос прост. Допустим, у вас есть функция
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 ++ - это хорошо.