Es sind nun ungefähr 4 Jahre Entwicklung, in denen ich Hash-Tabellen und Hash-Funktionen verwende, höre, darüber spreche und implementiere. Aber ich verstehe wirklich nie, warum es Haschisch heißt?
Ich erinnere mich an die ersten Tage, an denen ich mit dem Programmieren angefangen habe. Dieser Begriff war für mich etwas umständlich . Ich habe nie herausgefunden, was es ist, basierend auf seinem Namen . Ich habe nur experimentell verstanden, was es macht und warum und wann wir es verwenden sollten .
Trotzdem versuche ich manchmal herauszufinden, warum es Hash heißt . Ich habe kein Problem mit Tabelle oder Funktion und um ehrlich zu sein, sie sind ziemlich deduktiv, rationale Begriffe. Ich denke jedoch, dass bessere Wörter anstelle von Hash, wie Schlüssel oder Eindeutigkeit , verwendet werden könnten . Keine Schlüsseltabelle oder Eindeutigkeitstabelle .
Nach meinem Wörterbuch bedeutet Hash:
- Gebratenes Gericht aus Kartoffeln und Fleisch (höchst irrelevant)
- # -Zeichen (AKA-Nummernzeichen, Nummernzeichen usw.) (immer noch irrelevant, möglicherweise nur eine falsche Nomenklatur)
- Anwenden eines Algorithmus auf eine Zeichenfolge (hat immer noch nichts mit der Eindeutigkeit zu tun , die das wichtigste Merkmal einer Hash-Tabelle ist)
- Essen schneiden
- Ein anderer Begriff für Haschisch
Weiß jemand, warum es Hash heißt?
Antworten:
Laut Wikipedia bezieht es sich auf die Hash-Funktion . Wenn Sie noch einen Schritt weiter gehen möchten, heißt es auf der Wiki-Seite für die Hash-Funktion, dass die Verwendung des Wortes "Hash" in der Hash-Funktion folgendermaßen entstanden ist:
quelle
Im Französischen heißt eine Hash-Tabelle "table de hachage", das verwandte Verb "hacher" bedeutet hacken / hacken (meistens Essen). Das Verb
to hash
hat im Englischen die gleiche Bedeutung.Wie andere bereits betont haben, wird es Hash genannt, weil Sie Ihre Eingaben abhacken, die Sie an verschiedenen Stellen (Ihren Tabelleneinträgen) in Stücke setzen.
quelle
Nummer 3 hat alles damit zu tun. Aus Wikipedia :
Eine Hash-Tabelle speichert also nicht wirklich Werte, die auf einem Schlüssel basieren. Es speichert Werte basierend auf einer gehashten Version dieses Schlüssels.
quelle
Hash-Tabellen werden aufgrund der Verwendung so aufgerufen Hash-Code verwendet wird und dieser sich auf "Lebensmittel schneiden" bezieht.
Stellen Sie sich das so vor - Sie nehmen Ihr hübsches Objekt wie eine Frucht und hacken es, sodass es wie alles andere aussieht - nur eine Zahl - es enthält keine Struktur mehr. Dieses Stück "geschnittenes Essen" wird in der Hash-Tabelle verwendet, um Ihr schönes hübsches Objekt herauszufinden.
Hash-Code findet einen Bucket in der Tabelle, in dem sich Ihr hübsches Objekt in einer kleinen Firma mit demselben Hash-Code befindet. In diesem kleinen Unternehmen wird das Objekt mithilfe der Gleichheitsprüfung gesucht - was viel langsamer sein dürfte als die Hash-Suche, aber keine große Sache ist, da es nur wenige gibt (die meisten anderen Objekte werden dank schnellem Hash bereits ignoriert). .
quelle
Beim Haschieren (wie beim Schneiden in kleine Stücke, Zerkleinern usw.) wird eine Eingabe (Lebensmittel oder manchmal Superschurken) in eine relativ homogene Ausgabe umgewandelt. Dh egal was du am Anfang hattest, am Ende hast du nur Haschisch. Und ein Löffel des Hashes ist ungefähr so hilfreich wie der gesamte Hash, um festzustellen, was die Eingabe war (vorausgesetzt, Ihre Hashing-Maschine hasht gut).
Das Hashing kann also jedes essbare oder böse Objekt in einen Löffel Hash umwandeln, wobei zwei verschiedene Objekte unterschiedliche Hashes ergeben, während zwei gleiche Objekte gleiche Hashes ergeben. Das heißt, wenn zwei Superschurken in Ihre Hashing-Maschine gefallen sind, genügt es, ihre Hashes zu vergleichen, um festzustellen, ob einer ein Klon des anderen war.
In gewisser Weise ähneln sich die Hashing-Funktionen in der Informatik. Sie nehmen eine ganze Eingabe unterschiedlicher Größe und Semantik und - ganz einfach ausgedrückt - schneiden sie sie einfach in Stücke und mischen diese herum und schneiden die resultierende Sequenz zurück in Stücke und mischen diese herum und so weiter. Am Ende haben Sie einen Löffel (n Bytes) der Eingabe, die Sie gehasht haben.
quelle