![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формула [D7, XP]
SitiZen © (2015-11-26 18:46:00)Здравствуйте. Такой вопрос есть некоторое значение, скажем k, и есть некоторая таблица со значениями n1,n2,n3...n, значения которых соответствуют k1,k2,k3...k. Вот мы получаем число k, но скажем оно получается между значениями k2 и k3, и соответственно между n2 и n3. Соответственно чтобы получить значение n следует посчитать по формуле: (n2+(k-k2)*(n3-n2))/(k3-k2) -вроде не ошибся, ну смысл в том что нужно взять крайние значения из таблицы и произвести с ними необходимые расчеты, чтобы получить что там в середине. Вопрос, собственно, в том, как сделать, чтобы программа делала данный алгоритм. То есть при получении каких то значений, находила крайние значения из заданной таблицы чисел, производила необходимый алгоритм и высчитывала n, но следует сказать что число k не обязательно должно быть между числами n2 и n3 и тд, оно может быть и равно одному из значений n.
skiph1 (2015-11-27 07:08:00) [1]Таблица отсортирована? Т.е. k2 всегда меньше k3?
если да, то решение тривиальное: пробегаешь по таблице и ищешь первое kх, которое НЕ БОЛЬШЕ k. Если на i-й записи встречаешь ki=k, выводишь ni, если оно больше k, то выводишь значение, вычисленное по формуле ni и n(i-1)
Германн (2015-11-27 01:43:00) [2]Ищи тут http://alglib.sources.ru/
Юрий Зотов (2015-11-26 20:04:00) [3]Гуглите по словам "линейная интерполяция".