Вам необходимо найти некоторую неизвестную точку в трехмерном пространстве, за
наименьшее количество попыток, используя только функцию, которая может вернуть расстояние от
двух точек.
Для решения задачи сначала реализуйте функцию f, которая, принимая координаты двух любых
точек с координатами (x, y, z) которые могут быть любым целым числом от 0 до 100, и возвращает расстояние между ними
Например, для произвольно сгенерированной точки a(10, 6, 19) и переданной в функцию точки
b(10, 6, 9), результат работы функции будет следующим: f(a, b) = 10
Далее имплементируйте сам алгоритм для задания. Алгоритм должен находить координаты
произвольно сгенерированной точки при наименьшем количестве вызовов функции f.
Я читал про триангуляцию по 4 точкам, про решение системы уровнений, про поиск растояния между точками по функции (x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2 = d^2, это я в функцию добавил, но что мне с решениями этих уровнений я немогу понять, помогите...
const MAX_NUMBER = 100
const MIN_NUMBER = 0
let probes = []
export const getRandomNumber = (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
export const getRandomCoordinates = () => {
return {
x: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
y: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
z: getRandomNumber(MIN_NUMBER, MAX_NUMBER),
}
};
export const createAsteroid = () => {
return getRandomCoordinates()
};
export const getDistanceBetweenPoints = (point1, point2) => {
const { x: x1, y: y1, z: z1 } = point1;
const { x: x2, y: y2, z: z2 } = point2;
const distance = Math.sqrt(
Math.pow(x2 - x1, 2) +
Math.pow(y2 - y1, 2) +
Math.pow(z2 - z1, 2)
);
return distance;
}
const addProbeAndGetDistance = (probe, asteroid) => {
probes.push(probe)
return getDistanceBetweenPoints(probe, asteroid)
}
export const findAsteroidLocation = () => {
const asteroid = createAsteroid()
const d1 = addProbeAndGetDistance({ x: 0, y: 0, z: 0 }, asteroid)
const d2 = addProbeAndGetDistance({ x: 0, y: 0, z: 1 }, asteroid)
const d3 = addProbeAndGetDistance({ x: 0, y: 1, z: 0 }, asteroid)
const d4 = addProbeAndGetDistance({ x: 1, y: 0, z: 0 }, asteroid)
}