fonction de hachage parfait

Je suis d'essayer de hachage les valeurs

10, 100, 32, 45, 58, 126, 3, 29, 200, 400, 0

J'ai besoin d'une fonction qui va de la carte à un tableau qui a une taille de 13 sans provoquer des collisions.

J'ai passé plusieurs heures à réfléchir à ce plus et googler et ne peut pas comprendre cela. Je n'ai pas une solution viable.

Comment pourrais-je aller sur la recherche d'une fonction de hachage de ce genre? J'ai joué avec gperf, mais je ne comprends pas vraiment et je ne pouvais pas obtenir les résultats que je cherchais.

  • Cela sonne comme des devoirs ... de toute façon, écrire un programme pour le faire pour vous! 🙂 Venir avec une formule générique, probablement à l'aide de pow ou une opération au niveau des bits, et le module (hey, il y a déjà un exemple dans une réponse!), et puis l'ordinateur de l'plunk, à travers des valeurs jusqu'à ce qu'il y a une "fonction de hachage parfait de match trouvé". Je l'ai fait pour mon CS devoirs il y a des années et il a très bien fonctionné 😉
  • On dirait que vous essayez de trouver une minimum parfaite de la fonction de hachage.
  • Sur la deuxième pensées... tu as 11 points de données. Pourquoi voulez-vous à la carte pour un tableau de taille 13? Quelle est la signification de ce numéro 13?
  • J'ai couru à vos numéros en "gperf" et il se produit un parfait fonction de hachage. Regardez le résultat que vous avez obtenu et vous verrez une fonction appelée 'hash' là.
InformationsquelleAutor gregghz | 2010-11-09