Я бы хотел вычислить вес как обратную величину расстояния для чего-то вроде весовой интерполяции обратного расстояния .
double wgt = 0, wgt_tmp, result = 0;
for (int i = 0; i < num; i++) {
wgt_tmp = 1.0/dist[i];
wgt += wgt_tmp;
result += wgt_tmp * values[i];
}
results /= wgt;
Однако расстояние может быть 0
, и мне нужно сделать вес пригодным для вычислений. Если есть только одно расстояние dist[i]
, равное 0
, я бы хотел, чтобы его соответствующее значение values[i]
было доминантным . Если есть несколько расстояний 0
, я бы хотел, чтобы их значения способствовали равному результату. Также, даже если dist[i]
не ноль, а очень маленький, я хотел бы иметь разумный критерий, чтобы проверить его и разобраться с ним. Есть идеи, как это реализовать?