Qu'est-ce qu'une fonction de hachage, c'est quelque chose qui est utilisé dans toute l'informatique.
Une fonction de hachage est simplement une fonction qui génère une valeur de longueur fixe pour chaque entrée qu'elle obtient.
D'accord, qu'est-ce que ça veut dire ?
Eh bien, j'ai ici un générateur de hachage modifié nommé cinq est le type de fonction de hachage et il y en a beaucoup,
beaucoup de types dont vous avez peut-être entendu parler, tiré d'un coup à 56 et bien d'autres.
En utilisant cette fonction de hachage, voyons ce qui se passe si je le fais.
Bonjour?
Vous voyez cela tout de suite, et les cinq hachent cette chaîne et la transforment en ce charabia.
C'est ce que fait une fonction de hachage, nous lui donnons une entrée et la fonction génère un motif aléatoire.
Il y a maintenant quelques aspects clés des fonctions de hachage.
Premièrement, c'est à sens unique.
En ce sens que si je donne ceci à quelqu'un, il n'a aucune idée de ce qu'était l'entrée et il m'est
pratiquement impossible d'avoir la moindre idée de ce qu'est l'entrée.
La seconde est que peu importe combien de fois je mets bonjour là-dedans, ça va être la même chose.
Mais dès que je change une chose, ça va complètement changer la sortie.
Si je retourne à bonjour et.
Regardez-moi juste passer en majuscule H, même une lettre majuscule, donc ça commence par cinq D quatre, si
je fais majuscule H, c'est encore complètement différent.
Et en regardant ça, on peut au moins dire que, hmm, je ne sais pas à quoi ça sert, mais la seule chose que
je sais c'est que quoi qu'il arrive, si je lui donne la même entrée, ça va donner moi le
même résultat.
Mais je n'ai aucune idée de comment reconvertir cela en bonjour.
C'est ce qu'on appelle indépendant ou indépendant, il y a différentes prononciations, je ne sais pas vraiment
lesquelles, mais c'est une façon élégante de dire qu'une fonction, étant donné une entrée, sort toujours la
même sortie.
Maintenant, le seul avantage et pourquoi nous voudrions utiliser ceci et une structure de données est que nous obtenons
un accès aux données très rapide car tout ce que j'ai à faire pour trouver Graps ou Baskett DOT Graps est de passer Graps dans quelque chose comme un hachage vide
de cinq.
Il génère ce numéro pour moi et je sais immédiatement où il se trouve dans ma mémoire sur notre ordinateur.
Mais cela ne ressemble pas à une adresse, n'est-ce pas ?
Techniquement, une fonction de hachage que nous utilisons pour les tables de hachage va prendre des
grappins, générer une sorte de charabia, puis la convertir en une base d'index ou une base d'adresses basée sur ce nombre.
Vous voyez, contrairement à une course où nous avions juste ordonné des index avec des tables de hachage, tout ce que nous avons à faire est de lui donner une clé
et nous savons exactement où se trouve cet élément dans notre mémoire.
Mais vous vous demandez peut-être, cette fonction de hachage de boîte noire, ne ralentit-elle pas les choses ?
Parce que chaque fois que nous voulons ajouter une propriété.
Et une valeur raisins et dix mille à une table de hachage, nous devons l'exécuter via la fonction de hachage afin que nous
puissions décider où le mettre en mémoire.
Et si vous l'avez remarqué, bon travail, c'est un facteur important.
Vous ne voulez pas que cela prenne beaucoup de temps parce que, eh bien, chaque fois que vous ajoutez une propriété en
mémoire ou récupérez une propriété en mémoire, parce que, encore une fois, nous envoyons les deux fois les raisins clés dans la fonction
de hachage à trouver où l'obtenir.
Nous avons besoin que ce soit vraiment, vraiment rapide.
Et sous le capot, rappelez-vous, parce que les tables de hachage existent dans toutes les langues, elles sont implémentées avec
une fonction de hachage optimale qui est vraiment, vraiment rapide.
En remarque.
Les fonctions de hachage comme le tir à cinquante-six prennent beaucoup de temps pour générer un hachage.
Et c'est une fonction de hachage trop complexe qui est beaucoup utilisée dans des endroits comme la cryptographie où vous voulez
que cela prenne plus de temps, mais cela sort du cadre de ce cours.
Si vous êtes intéressé, je vous recommande de vérifier les différences entre ces deux.
Pour passer en revue, nous avons une clé qui est graps, nous l'envoyons via une fonction de hachage qui va hacher
quelque chose vraiment, très rapidement, puis mapper tout ce que le hachage est sorti pour être dans une adresse mémoire où
nous voulons stocker notre.
Les données sont des raisins 10000.
Et lorsqu'il s'agit de fonctions de hachage, vous laissez généralement cela au framework ou
au langage que vous utilisez, et nous supposons généralement un temps, une complexité ou une notation bigo, car cela se produit très
rapidement.
D'accord.
Maintenant que nous comprenons ce que fait cette boîte noire, parlons un peu plus des tables de hachage, pourquoi
elles sont utiles et pourquoi dans certains cas sont meilleures que iRace.