Pen^2 Le 07/04/2002 à 22:11 >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 :-)
jcop Le 08/04/2002 à 00:03 comment vous faites pour indenter vos listings dans les posts ?
Pen^2 Le 08/04/2002 à 10:41 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 ]
Pen^2 Le 09/04/2002 à 12:24 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.
Pen^2 Le 09/04/2002 à 12:29 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.
Pen^2 Le 09/04/2002 à 12:42 héhé !
Azur PPPPOOOOOOOOWWWWWWWWWWWEEEERRRRRRRRRR
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)...
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]

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.
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.