假设我有“peachz”作为字符串,“eachzp”和“pahezc”作为尝试用于比较。有关子串序列和顺序的字符串混乱的算法(相同长度,相同字符,独特字符,没有词汇含义的字符串)
我正在寻找一种算法,输出阵列无序的水平,关于事件的相对顺序。 在下面的例子中,我用当前算法来描述问题。我总结了每个角色在原始字符串上的尝试位置的差异。
下面是一个例子图像:
http://i51.tinypic.com/1zz2c10.png http://i51.tinypic.com/1zz2c10.png
“eachzp”具有相同的字符顺序,除了P.由于P具有移动到第一位置中,每隔一个字符被看作是一个位置出的地方。 “eachzp”将输出10的无序度,而完全混杂的“pahezc”尝试将输出8。这是不正确的。 Hamming或Levenshtein距离等事情也不会考虑这些“顺序序列”。
我的问题是: 有没有一种算法可以用来输出字符串的无序/相似性,考虑到它们的字符的相对顺序?
(这应该是没有字典相关,因为字符串是不言而没有任何词汇意义。如果有帮助,人物会也将在每个字符串是唯一的。)
TIA
/编辑:我会尽力解释以不同的方式我的情况后,试图进一步细节吧:
中的字符串始终是相同长度的
字符串总是有相同的字符(例如。如果原始文件是“ors”,其他字符串只能是“ors”,“osr”,“sor”,“ros”,“sro”或“rso” - 长度和字符相同)
chars总是在每串
的字符串唯一不是的话,并有在所有
我需要的算法取序考虑没有词义。如果原始字符串是“peachz”,则“eachzp”的排列方式几乎完全相同 - 只有“p”不合适。这应该更类似于“peachz”而不是“pahezc”,它更加混乱,并且在所有方向上(我觉得这个“方向”概念可能与解决方案相关)。
“eapchz”也应该比“eachzp”更少乱码。在这两种情况下,只有字母“p”不合适,但它在“eapchz”上移动了较短的距离。
所有帮助表示赞赏。谢谢
“最大和最小分数”对于我描述的“错误算法”也是正确的。这与我原来的行为“一样糟糕”。如果你尝试我的示例尝试“eachzp”(除了“p”以外的所有字符都具有相同的顺序顺序)和“pahezc”(在所有方向上加扰,与原始字符不相似),你会得到20 “eachzp”,30个中的22个用于“pahezc”。虽然我们的算法另有说明,但我们知道“pahezc”与“eachzp”相比,“peachz”的意义不大。 – baderous 2010-11-10 17:18:25
我不同意它是“平凡的不太相似”。测量混乱的方法有很多种,显然我们的直觉并不同意“自然”是什么。虽然我可能应该确保我的算法在发布之前确实想要你想要的。 – Max 2010-11-10 21:58:42
我已经完全更新了我的算法。 – Max 2010-11-10 22:59:17