Я хочу реализовать Newton interpolation formula. Возможно, это дает следующий текст больше смысла.Объединить соседние элементы в списке
Я ищу список-функцию, которая объединяет каждый из двух соседей в списке с новым значением. Это должно быть довольно быстро и (если возможно) не включать создание новых списков. Я хочу выполнить сокращение, описанное ниже несколько раз подряд, но захватить некоторые данные между ними.
Бинарная функция, с которой она объединена, должна быть свободно переключаемой.
До сих пор я придумал что-то вроде этого (но для массивов):
double[] before = {4, 3, 7, 1};
while(before.length > 1){
double[] after = new double[before.length - 1];
for (int i = 0; i < after.length; i++){
after[i] = chosenBinaryFunction(before[i], before[i+1]);
}
//store after[0]
before = after;
}
Ответ «Там нет лучшего способа, чем то, что вы сделали» является приемлемым. В этом случае предоставьте рекомендации по улучшению метода (например, избегайте создания большого количества новых списков в while
, возможных ярлыках, ...).