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 :

Table de hashage


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut Table de hashage
    Bonjour,

    Je vous explique mon problème rapidement :
    Je réalise un othello intelligent, mon professeur m'a conseillé de réaliser une table de transposition des différents damiers (vu lors du developpement de l'arbre alpha beta) grace à la technique des tables de hashage et plus particulierement avec les clef de zobrist.

    Il m'a aussi dit qu'un tableau de 10000 transpositions serait largement nécessaire, or il ya bcp de damier différent qui sont enegistrer dans la même case du tableau, ce qui fausse totalement le retour de ma fonction alpha beta. Découvrant cette méthode j'ai essayé d'augmenter la taille du tableau,mais 30000 cases ne suffisent pas. Je me dis maintenant que c'est peut être la taille de mes clefs qui ne sont pas assez grande je prends des premiers de type unsigned long qui sont codés sur 32 bits si je me souviens bien. J'ai entendu parler d'un type long long mais je n'ai trouvé aucune info sur le net, pourriez vous m'en dire plus sur ce type et me dire quel pourrait être la cause si cela ne vient pas des clefs.

    Merci davance !!

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Ce type n'est pas portable et n'est pas géré par tous les compilateurs.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Enfin, il me semble qu'il fait quand même partie du standard C99.
    Mais il faut avouer qu'à l'heure actuelle, le standard C99 ne peut pas vraiment être qualifié de portable...

    En bref, un long long (ou __int64 pour un vieux Visual C++) est supposé être un entier 64 bits. Là dessus... pas grand-chose à dire de plus que seriousme.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    dans un othello, il y a 3^64 possibilités non ? (noirs, blancs, vides) Donc même un unsigned long long de 64 bits ne suffirait pas. La solution c'est d'utiliser plusieurs entiers.

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Médinoc
    Enfin, il me semble qu'il fait quand même partie du standard C99.
    Mais il faut avouer qu'à l'heure actuelle, le standard C99 ne peut pas vraiment être qualifié de portable...

    En bref, un long long (ou __int64 pour un vieux Visual C++) est supposé être un entier 64 bits. Là dessus... pas grand-chose à dire de plus que seriousme.
    Depuis quand le C impose une taille pour ses types (à part ceux de stdint.h) : http://nicolasj.developpez.com/articles/c99/#LIV-B

  6. #6
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    le C definit une taille minimale pour tout ses types (fin, il me semble hein ...)
    en s'appuyant sur cette taille minimale, on est sur de rester portable ...

Discussions similaires

  1. table de hashage en parametre?
    Par yoruichiy dans le forum Langage
    Réponses: 4
    Dernier message: 10/07/2008, 08h10
  2. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  3. Comparaison table de hashage
    Par aikinhdo dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 17h23
  4. Problème de pointeur sur une table de hashage
    Par nicdesf dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 19h23
  5. [VB6] table de hashage
    Par Cirdan Telemnar dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/05/2006, 14h15

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