Green Mother
Guest
Определение "похожести" двух массивов
Вкратце, задача такая:
Есть два массива, содержащих целочисленные значения. Необходимо определить их "похожесть". Под похожестью понимается некое число, отражающее наличие одинаковых значений на примерно одинаковых местах. К примеру:
у $x и $y высокий уровень похожести, а у $x и $z низкий. На ум приходит алгоритм Левинштейна, но у него сложность n*m, что в данной ситуации недопустимо, массивы большие и сравнивать много. Может кто знает, где чего почитать? Чтоб сложность порядка n+m была...
Вкратце, задача такая:
Есть два массива, содержащих целочисленные значения. Необходимо определить их "похожесть". Под похожестью понимается некое число, отражающее наличие одинаковых значений на примерно одинаковых местах. К примеру:
PHP:
$x = array(1, 5, 9, 4, 3, 8, 2, 1, 4);
$y = array(1, 5, 4, 3, 8, 2, 1, 2, 4);
$z = array(1, 10, 15, 20, 4, 4, 5, 8, 9);