IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Fonction de Hachage


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Par défaut Fonction de Hachage
    Hello

    voila je bosse sur la focntion de hachage et jaurais voulu savoir comment realiser une fonction de hachage pour le resultat suivant :

    [2^0x(valeur ASCII de la lettre)+...+2^nx(valeur ASCII de lettre)]mod m

    m la taille de mon tableau

    exemple avec le mot : OK avec m=6

    je voudrais avoir

    [2^0x(valeur ACSII de 0)+2^1x(valeur ACSII de K)]mod 6=

    Mille de merci de votre aide

  2. #2
    Membre expérimenté

    Inscrit en
    Juin 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 97
    Par défaut
    ^
    nx
    Quoi qu'est-ce ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Par défaut
    desole c vrai ke c pas tres clair

    2^nx(valeur ASCII de lettre)

    je voulai dire par la 2 exposant n multiplie par la valeur ASCII de la lettre, n etant egale au nombre de lettre du mot moins 1 puisque au commence a 2 exposant 0.

    Merci

  4. #4
    Ol'
    Ol' est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 56
    Par défaut
    Je ne vois pas bien où est ton problème. toutefois, sache que pour effectuer une multiplication par 2^n, tu peux faire un décalage vers la gauche de n bits sur ton nombre.

    Pour ce qui est du modulo

    a mod b est le reste de la division euclidienne de a par b.
    Cela doit te donner quelquechose du style
    a mod b = a - ((long)(a)/(long)(b)*b)

    Au erreurs de calcul près...

    Ol'

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Par défaut
    Bonjour,

    un modulo se fait avec %.

    Ceci me semble être ce que tu veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #include <stdio.h>
    #include <string.h>
     
    unsigned my_hach( const char* pstr, unsigned m)
    {
    	unsigned l_i, l_r;
     
    	if( !pstr)
    		return 0;
     
    	for( l_i=0, l_r=0; l_i < strlen(pstr); l_r += (1<<l_i)*pstr[l_i++]);
     
    	return l_r % m;
    };
     
    int main()
    {
    	printf("%u\n", my_hach( "OK", 6) );
    	return 0;
    };
    en cas de pstr nul, il faudra peut être convenir d'une autre valeur de retour que 0 ...

    golem
    +++

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Par défaut
    Merci golem

    c'est bien le fonction de hachage que je cherche, je vais pouvoir commencer a constituer mon dictionnaire


  7. #7
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 47
    Par défaut
    a quoi ca sert une fonction fonction de hachage?

  8. #8
    Membre expérimenté
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Par défaut
    On cherche a associer à un element d'un ensemble un entier qui le caracterise. pour cela on utilise une fonction de hachage comme vu ci dessus.
    Une bonne fonction de hachage fait en sorte que le nombre d'elements associés à chaque entier soit constant.

    C'est pratique pour une recherche car dans ce cas son cout est de 1 ...

    http://fastnet.univ-brest.fr/~gire/C..._C/node13.html

    A voir le robleme des collisions...

    Freif'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appliquer la fonction de hachage MD5 à un texte
    Par 9tita dans le forum Sécurité
    Réponses: 2
    Dernier message: 01/05/2011, 16h13
  2. Recherche d'une fonction de hachage
    Par druzy dans le forum Langage
    Réponses: 13
    Dernier message: 26/11/2007, 21h09
  3. Probleme Fonction de Hachage
    Par 1pedro1 dans le forum C
    Réponses: 6
    Dernier message: 25/11/2007, 17h43
  4. [Oracle / Fonction hachage] Fonction de hachage SHA / MD5
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 8
    Dernier message: 26/01/2006, 08h58
  5. Fonction de hachage
    Par killer crok dans le forum C
    Réponses: 12
    Dernier message: 02/10/2002, 09h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo