30

Attention : la fonction de hashing conseillée dans les premiers posts (additionner puis prendre le nombre modulo le nombre d'entrées dans la table) n'est pas du tout idéale.

Pour une analyse de différentes fonctions de hashing :
http://burtleburtle.net/bob/hash/evahash.html
http://burtleburtle.net/bob/hash/doobs.html

A part ça, pour économiser de la mémoire, on peut utiliser un tableau de n entrées (je pense que tu le fais déjà) alloué au démarrage du programme, et utiliser des indices (taille short ou char) au lieu de pointeurs.

31

>la fonction de hashing conseillée n'est pas du tout idéale.
oui oui je sais, ct effectivement noté dans le bouquin.

En revanche merci pour les URL :-)

32

comment vous faites pour indenter vos listings dans les posts ?

33

g tapé sous ultra edit ac des tabs pour indenter, puis g transformé les tabs en espaces, et g posté le tout à l'intérieur d'une balise [ pre ] [ /pre ]

34

Quoi !!???? Ta méthode n'est pas la plus efficace Pen² confus
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

35

c juste que l'algo pour obtenir une hashvalue tu peux prendre ce que tu veux du moment que ça fonctionne.
et y'a des algos meilleurs que d'autres.

36

erf j'ai du mal à comprendre ta réponse roll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

37

ben :
hash(s)
char *s
{
int hashval;

for (hashval = 0 ; *s != '' ; )
hashval += *s++;
return(hashval % HASHSIZE) //hashsize c la taille du tableau
}

tu peux le remplacer par une autre fonction hash qui sera + efficace.
g pas encore trop regardé ses urls.

38

Ha ok c'est tout smile J'avais remarqué que c'était pas très rapide comme implémentation.

Tu as les sources de l'Azur, tu peux regarder mon code de hashage... C'est un tout petit peu différent quoi devil
[edit]Edité par Thibaut le 09-04-2002 à 12:38:18[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

39

héhé !
Azur PPPPOOOOOOOOWWWWWWWWWWWEEEERRRRRRRRRR

40

Avec 999999 projets simultanés je ne sais plus si j'irai jusqu'au bout wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

41

faudrait pourtant wink

42

Pour le hashage, un algo peut avoir deux qualités :
- être rapide/optimisé
- donner des résultats dispersés. On parle de collision quand énormément de chaînes s'entassent à peu d'endroits du tableau cible. Une bonne fonction de hash est censée disperser au maximum les résultats.

Il faut choisir entre perdre de la vitesse au moment du calcul de la clé, ou bien au moment de la recherche en tableau (si plusieurs éléments sont entassés au même endroit)...

43

Le mien c'est plutôt "rapide et optimisé".

Pour disperser, je suppose que parmi les techniques il y a des trucs du genre prendre en compte la longueur de la chaîne, l'emplacement les caractères, ... ?
[edit]Edité par Thibaut le 09-04-2002 à 21:50:21[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

44

Pour disperser, le principe de base est qu'un seul bit de la chaîne de départ doit avoir de l'influence sur plusieurs bits du résultats.

Enfin, j'ai pas ta méthode sous les yeux... la prise en compte de l'emplacement des caractères permet principalement de distinguer les anagrammes...

Le problème en prog, c'est que beaucoup de fonctions ont des noms semblables, du style getX() ou getY(), ou au pire un seul bit change.

L'idée est que ce bit ait pas mal d'influence.

45

C'est vrai smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.