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

Algorithmes et structures de données Discussion :

Hashvalue unique dans un long?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Par défaut Hashvalue unique dans un long?
    Bonjour,
    Comment associer une valeur hash unique à chaque coordonnée (x, y, z) dans l'espace pour que chaque coordonnée ait une valeur hash unique? Si on a une valeur maximale dans chaque axe de 5000? Donc la coordonnée maximale est de (5000,5000,5000) et aucune des valeurs ne peut dépasser 5000. Il faut aussi que les hash tiennent dans un long...
    Je connais le codage de Gödel, mais ceci devient vite trop grand pour un long.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Je suppose que:
    * tes coordonnées ont des valeurs entières
    * la valeur minimale est 0 (ou 1, ça ne changera pas grand chose)
    * par "long", tu entends un entier 32 bits
    * tu veux que deux points différents aient un "hash" différent (ce qui est mon interprétation de "chaque coordonnée ait une valeur hash unique")

    Dans ce cas, ce que tu demandes est impossible; 5001*5001*5001 > 2^32.
    Et ce que tu demandes n'est pas vraiment un "hash"; c'est plutôt un codage des tes coordonnées dans un long...

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    +1.

    Une valeur de hashage est le résultat d'une fonction de hachage. Et par définition, l'espace d'arrivé d'une fonction de hachage est plus petit que l'ensemble de départ. Donc il y a forcement des doublons.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Par défaut
    Citation Envoyé par pseudocode
    +1.

    Une valeur de hashage est le résultat d'une fonction de hachage. Et par définition, l'espace d'arrivé d'une fonction de hachage est plus petit que l'ensemble de départ. Donc il y a forcement des doublons.
    Oui, peut-être que je me suis mal exprimé. En effet, je voulais dire un codage des coordonnées dans un long.
    Citation Envoyé par dividee
    Je suppose que:
    * tes coordonnées ont des valeurs entières
    * la valeur minimale est 0 (ou 1, ça ne changera pas grand chose)
    * par "long", tu entends un entier 32 bits
    * tu veux que deux points différents aient un "hash" différent (ce qui est mon interprétation de "chaque coordonnée ait une valeur hash unique")

    Dans ce cas, ce que tu demandes est impossible; 5001*5001*5001 > 2^32.
    Et ce que tu demandes n'est pas vraiment un "hash"; c'est plutôt un codage des tes coordonnées dans un long...
    Je voulais dire un long dans Java, donc un entier 64 bits. Mais je viens de trouver la classe BigInteger, que je peux utiliser. BigInteger accepte n'importe quelle longueur de bits. Connaissez-vous une méthode pour calculer une valeur unique pour chaque coordonnée? Car je pense que le codage de Gödel utiliserait beaucoup de mémoire...

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par pongping
    Connaissez-vous une méthode pour calculer une valeur unique pour chaque coordonnée? Car je prends que le codage de Gödel utiliserait beaucoup de mémoire...
    Tout betement (x,y,z) -> 5001^2*x + 5001*y + z

    Hum... pourquoi vouloir mettre des coordonnées dans un BigInteger et pas utiliser une classe genre Point3D ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Par défaut
    Ok merci beaucoup.

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

Discussions similaires

  1. Lancer un et un seul thread unique dans une application web
    Par rach375 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 22/09/2006, 15h35
  2. champ unique dans fenêtre indépendante
    Par burnout69 dans le forum Access
    Réponses: 12
    Dernier message: 07/09/2006, 21h37
  3. [liste] référence unique dans une liste
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 3
    Dernier message: 29/03/2005, 09h57
  4. Valeur hexadecimale dans String -> Long
    Par Stol dans le forum Langage
    Réponses: 2
    Dernier message: 25/03/2005, 16h31
  5. Uniquement dans le systray
    Par atmaniak dans le forum Composants VCL
    Réponses: 5
    Dernier message: 31/10/2003, 17h49

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