Ні. Ви не можете зробити краще, ніж Θ(n2) в гіршому випадку.
Розглянемо розташування точок, де кожна пара точок знаходиться на відстані 1один від одного. (Це можлива конфігурація.) Тоді ви не можете зробити краще, ніж вивчити кожен край. Зокрема, якщо є будь-який край, який ви не оглядали, то противник може вибрати довжину цього краю, яка буде будь-якою0.9, 1.0, або 1.1; усі ці варіанти відповідають усім іншим спостереженням, які ви зробили, і вимогам метрики (наприклад, з нерівністю трикутника), тому всі три можливі; але вони вимагають різних результатів. Таким чином, якщо ваш алгоритм не вивчає цей край, а потім щось виводить, супротивник завжди може вибрати довжину для невивченого краю, що зробить неправильний вихід вашого алгоритму.
Однак, якщо ви знаєте, що всі пункти живуть Rd (навіть якщо вам не вказані їх координати), то проблему можна вирішити шляхом вимірювання O((d+1)n) відстані, не передбачаючи відроджень (без підмножини) d+1 точки співпланові).
Зокрема, підберіть d+1балів випадковим чином. Це будуть якірні точки. З огляду на їх парні відстані, ви можете обчислити координати для них, що відповідають їх попарним відстаням. Тепер для кожного іншого пунктуP, обчислити відстань від Pдо кожної точки прив’язки. Використовуючи тріангуляцію та ці відстані, можна обчислити розташуванняP відносно точки прив’язки і, отже, координат для P. Зробіть це для кожної точки без прив’язкиP. Тепер у вас є координати для кожної точки, і ви можете використовувати ці координати, щоб знайти центральну точку, не вимагаючи від оракула дати вам більше парних відстаней. Я не знаю, чи можна зробити цей останній крок швидше, ніжO(n2) час , але це можна зробити без вимірювання більше парних відстаней.