假設我有「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