Расчет расстояний на JavaScript Расстояние между двумя точками const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);JavaScriptCopy distance(1, 1, 2, 3); // ~2.2361JavaScriptCopy Расстояние Хэмминга const hammingDistance = (num1, num2) => ((num1 ^ num2).toString(2).match(/1/g) || '').length;JavaScriptCopy hammingDistance(2, 3); // 1JavaScriptCopy Векторное расстояние const vectorDistance = (x, y) => Math.sqrt(x.reduce((acc, val, i) => acc + Math.pow(val - y[i], 2), 0));JavaScriptCopy vectorDistance([10, 0, 5], [20, 0, 10]); // 11.180339887498949JavaScriptCopy Расстояние Левенштейна const levenshteinDistance = (s, t) => { if (!s.length) return t.length; if (!t.length) return s.length; const arr = []; for (let i = 0; i <= t.length; i++) { arr[i] = [i]; for (let j = 1; j <= s.length; j++) { arr[i][j] = i === 0 ? j : Math.min( arr[i - 1][j] + 1, arr[i][j - 1] + 1, arr[i - 1][j - 1] + (s[j - 1] === t[i - 1] ? 0 : 1) ); } } return arr[t.length][s.length]; };JavaScriptCopy levenshteinDistance('duck', 'dark'); // 2JavaScriptCopy Евклидово расстояние const euclideanDistance = (a, b) => Math.hypot(…Object.keys(a).map(k => b[k] - a[k]));JavaScriptCopy euclideanDistance([1, 1], [2, 3]); // ~2.2361 euclideanDistance([1, 1, 1], [2, 3, 2]); // ~2.4495JavaScriptCopy Вычисления JavaScript