algo : trouver le nombre le 'pattern' le plus frequent
|
05-12-2012, 22h34
(Modification du message : 05-12-2012, 23h56 par b0fh.)
Message : #8
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: algo : trouver le nombre le 'pattern' le plus frequent
Alors dans ton exemple premier, la plus longue chaine serait plutôt "aabcd" qui se répète deux fois.
Si tu considères que c'est correct, une implémentation O(n log n) en Haskell: Code : {-# LANGUAGE NoMonomorphismRestriction #-} Explications: "tails" crée la liste de tous les suffixes (çad les n derniers caractères, pour n de 1 à la longueur de la chaine). En Haskell prendre la queue d'une liste ne cause pas de réallocation, en C tu pourrais faire pareil en remplissant simplement un tableau de pointeurs vers chaque début possible de la string. Ce tableau est ensuite trié (tri externe veut dire qu'on trie des pointeurs vers des blogs de données potentiellement beaucoup plus gros, et qu'on évite le cout du déplacement ou du fetch complet desdonnées.) Ton plus long préfixe répété sera donc forcément sur deux lignes contigues. On considère chaque couple de ligne contigues (le zipWith <*> tails) en y appliquant commonPrefix (qui cherche le plus long préfixe commun possible). On prend les préfixes résultants, on les trie par longueur, et on prend le plus long. Si tu veux un critère arbitraire sur la longueur et le nombre de répétitions, tu pourrais placer tous ces préfixes dans un Patricia Tree puis parcourir l'arbre en calculant une métrique quelconque sur chaque noeud. |
|
Messages dans ce sujet |
algo : trouver le nombre le 'pattern' le plus frequent - par gruik - 05-12-2012, 19h38
RE: algo : trouver le nombre le 'pattern' le plus frequent - par InstinctHack - 05-12-2012, 20h05
RE: algo : trouver le nombre le 'pattern' le plus frequent - par gruik - 05-12-2012, 20h33
RE: algo : trouver le nombre le 'pattern' le plus frequent - par lesk8vaincra - 05-12-2012, 20h57
RE: algo : trouver le nombre le 'pattern' le plus frequent - par gruik - 05-12-2012, 22h10
RE: algo : trouver le nombre le 'pattern' le plus frequent - par b0fh - 05-12-2012, 21h56
RE: algo : trouver le nombre le 'pattern' le plus frequent - par lesk8vaincra - 05-12-2012, 22h32
RE: algo : trouver le nombre le 'pattern' le plus frequent - par b0fh - 05-12-2012, 22h34
RE: algo : trouver le nombre le 'pattern' le plus frequent - par gruik - 07-12-2012, 16h42
RE: algo : trouver le nombre le 'pattern' le plus frequent - par Dobry - 07-12-2012, 21h27
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)