Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour un algo de hachage

Sujet résolu
    22 novembre 2014 à 11:34:33

    Salut,

    Pour demain 16h, je dois rendre un algorithme de hachage.

    L'énoncé est le suivant :

    "Il existe tout un folklore de fonctions de hachage : la plupart ont été élaborées de manière empirique, utilisent des constantes qui, en pratique, donnent une bonne distribution, et sont le fruit de beaucoup d'essais / erreurs. Une fonction de hachage doit bien distribuer les bits de son entrée ; une manière classique de le faire est à l'aide d'un processus itératif qui combine une valeur initiale avec les caractères de la chaîne.

    Voici une deuxième fonction de hachage, que nous vous proposons d'implémenter. Elle combine le i-ième caractère avec le hash h de manière différente.

    hash(i)=hash(i1)33s[i]
    hash(1)=5381;

    L'opérateur mathématique ⊕ est le « ou exclusif » ; il est disponible en Java via l'opérateur ^. Cette définition se prête naturellement à un calcul itératif [...]

    Testez votre fonction de hachage : le hash de la chaîne "coucou" est 1544958309."

    J'ai vraiment du mal à comprendre comment je suis sensé faire. Je pensais faire quelque chose du genre :

    @Override
        int hash() {
            
            nbHash = 0;
            
            for (int i= 0 ; i < nom.length() ; i++){
                
                nbHash =+ hashValue(i);
                
            }
            
           return nbHash;
            
        }
        
        private int hashValue(int i) {
            
            if (i==-1){
                return 5381;
            }
            
            int tmp;
            
            tmp = hashValue(i−1)*33^this.nom.charAt(i);
            
            return tmp;
            
        }

    Mais la ligne

    tmp = hashValue(i−1)*33^this.nom.charAt(i);

    est soulignée : illegal character: '\u2212'

    Pourriez-vous m'aider SVP ?

    Merci par avance.



    -
    Edité par victorm951 22 novembre 2014 à 11:35:28

    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2014 à 12:15:34

      Bonjour,

      ton problème semble venir du signe minus (- / −). Peux-tu essayer de le remplacer par le signe - du clavier ?

      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2014 à 13:03:14

        MERCI !!

        Le truc tout bête !

        Dire que j'ai passé des heures à chercher le pb ;)

        • Partager sur Facebook
        • Partager sur Twitter

        Besoin d'aide pour un algo de hachage

        × 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