Я хочу найти сходство двух последовательностей в Ruby, основанное исключительно на количестве общих значений.Последовательное расположение значений не должно иметь значения.Что также не должно иметь значения, так это то, имеет ли одна последовательность какие-либо значения, которых нет у другой последовательности.Мне было предложено расстояние Левенштейна, но оно вычисляет количество правок, необходимых для того, чтобы последовательности были идентичны .Вот простой пример, где есть недостаток:
[1,2,3,4,5]
[2,3,4,5,6,7,8,9]
#Lev distance is 5
[1,2,3,4,5]
[6,7,8,9,10]
#Lev distance is 5
В идеальном мире первый набор будет иметь гораздо большее сходство, чем второй набор.Грубое, очевидное решение состоит в том, чтобы использовать вложенные циклы для проверки каждого значения первой последовательности относительно каждого значения второго.Есть ли более эффективный способ?