Допустим, у меня есть "peachz" в качестве строки, а "eachzp" и "pahezc" в качестве попыток, использованных для сравнения.
Я ищу алгоритм, который выводит уровень беспорядка массиваотносительно относительного порядка вхождений.В следующем примере я опишу проблему с моим текущим алгоритмом.Я суммирую различия в позиции попытки каждого символа по сравнению с исходной строкой.
Вот пример изображения:
http://i51.tinypic.com/1zz2c10.png http://i51.tinypic.com/1zz2c10.png
"eachzp"имеет тот же порядок символов, за исключением P. Поскольку P переместился на первую позицию, все остальные символы рассматриваются как одна позиция не на своем месте.«eachzp» выдаст степень беспорядка 10, а полностью зашифрованная попытка «pahezc» выдаст 8. Это неверно.Такие вещи, как расстояние Хэмминга или Левенштейна, также не принимают во внимание эти «последовательности порядка».
Мой вопрос: существует ли алгоритм, который я могу использовать для вывода беспорядка / подобия строк, учитывая относительный порядоких персонажи?
(Это не должно быть связано со словарем, поскольку строки не являются словами и не имеют лексического значения. Если это поможет, символы также будут уникальными в каждой строке.)
tia
/ edit: я попытаюсь объяснить мою ситуацию по-другому, пытаясь уточнить ее:
Строки всегда имеют одинаковую длину
Строки всегда имеют одинаковые символы (например, если оригинал был "ors", другие строки могут быть только "ors", "osr", "sor", "ros", "sro" или "rso" - одинаковая длина и одинаковые символы)
Символы всегда уникальны для каждой строки
Строкине слова и не имеют никакого лексического значения
Мне нужен алгоритм, чтобы учесть последовательность заказа.Если исходная строка «peachz», «eachzp» упорядочен почти точно так же, только «p» неуместно.Это должно быть больше похоже на «peachz», чем «pahezc», который намного более закручен, и во всех направлениях (я чувствую, что это понятие «направления» может иметь отношение к решению).
"eapchz" также должен быть менее зашифрованным, чем "eachzp".В обеих ситуациях только буква «p» неуместна, но она на более коротком расстоянии от «eapchz».
Вся помощь приветствуется.спасибо