Partage
  • Partager sur Facebook
  • Partager sur Twitter

Algorithme de recherche dans un tableau

Sujet résolu
    7 mars 2019 à 21:52:04

    Salut, ^^

    Je souhaite crée un algorithme de recherche pour ce tableau (https://api.fleetyards.net/v1/models/slugs) et pour sa j'ai une idée assez cool, mais j'ai aucune idée de comment la traduire en code (je programe en java script mais si vous me proposé du pseudo code je devrais m'en sortir)

    L'idée et générer en fonction de la recherche des point pour chaque résultat et de calculer leur pourcentage. 

    Pour sa mon idée et de compter le nombre de lettre successive qui ce suive dans chaque résultat comme des point puis ensuite de faire un pourcentage de ceux ci par rapport à la longueur du résultat.

    Par exemple :

    Je recherche : Agis Avanger (j'ai fait expré de faire une faute dans la recherche pour vérifier la pertinence du résultat)

    Les Résultats serais alors (je n'est fait le test manuellement sur un jeux réstrin de résultat):

    avenger-titan(6point*|46%**)

    avenger-stalker(6point|40%)

    avenger-warlock(6point|40%)

    avenger-titan-renegade(6point|22%)

    andeavor(2point|25%)

    reliant-sen(2point|18%);

    *6 point car 6 lettre ordonnée dans le même ordre que la recherche.

    **46% car 6/13*100 = 46% (13 étant la longueur de la chaine de cacheter)

    Les résultat sont d'abord ordonnée par nombre de point puis par pourcentage.

    Et du coup mon problème c'est que j'ai aucune idée de comment faire pour programmer sa même en pseudo code je ne voix pas vraiment... J'aurais vraiment besoin de votre aide.

    Merci d'avance ;)

    • Partager sur Facebook
    • Partager sur Twitter
      7 mars 2019 à 23:47:51

      Hello, regarde du côté des Tries cela t'aidera.

      Tu peux programmer les arêtes pour avoir un seul d'erreur 

      • Partager sur Facebook
      • Partager sur Twitter

      Architecte logiciel - Software craftsmanship convaincu.

        9 mars 2019 à 17:02:22

        finalement j'ai trouver un algorithme qui fait plus ou moin ce que je veut et qui ce nomme l’algorithme de levenshtein. Apres je doit faire un peut de trie par dessus mais je devrais m'en sortir ^^
        • Partager sur Facebook
        • Partager sur Twitter
          11 mars 2019 à 13:09:08

          Ah super. Je crois que tu devrais à présent marquer le sujet comme résolu 😉
          • Partager sur Facebook
          • Partager sur Twitter
            11 mars 2019 à 16:57:36

            Si tu veux l'algo qui te retourne la distance de Levenstein le voici : 

                        public static int distance(string s, string t)
                        {
                            s = s.ToLower();
                            t = t.ToLower();
            
                            int n = s.Length;
                            int m = t.Length;
                            int[,] d = new int[n + 1, m + 1];
            
                            if (n == 0)
                            {
                                return m;
                            }
            
                            if (m == 0)
                            {
                                return n;
                            }
            
                            for (int i = 0; i <= n; d[i, 0] = i++)
                            {
                            }
            
                            for (int j = 0; j <= m; d[0, j] = j++)
                            {
                            }
            
                            for (int i = 1; i <= n; i++)
                            {
                                for (int j = 1; j <= m; j++)
                                {
                                    int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
            
                                    d[i, j] = Math.Min(
                                        Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),
                                        d[i - 1, j - 1] + cost);
                                }
                            }
                            return d[n, m];
                        }


            Je m'en sert personnellement et ça marche très bien.

            -
            Edité par WorstDevEver 11 mars 2019 à 17:00:20

            • Partager sur Facebook
            • Partager sur Twitter

            Try->Fail->Learn->Converge to success :{\displaystyle Q[s,a]:=(1-\alpha )Q[s,a]+\alpha (r+\gamma ~max_{a'}Q[s',a'])}

            Algorithme de recherche dans un tableau

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown