frage zu hash-algorithmus
-
hallo,
folgende frage, hoffe koennt helfen:ich ueberlege, ob es moeglich ist fuer folgende menge von zahlen folgende hash-funktion zu erstellen:
fuer die menge von 32-Bit zahlen sollen alle zahlen, die genau 5 gesetzte bits haben, folgende hash-funktion-werte haben:
die kleinste zahl (hex 0x1f) soll den wert 0 bekommen
die naechstgroessere zahl (hex 0x3e) soll den wert 1 bekommen
die naechstgroessere zahl (hex 0x7c) soll den wert 2 bekommen
usw.d.h. wenn zahl1 < zahl2 so auch hex(zahl1) < hex(zahl2)
alle anderen 32-bit zahlen (die nicht genau 5 bits haben) haben den hex-wert -1
wie sehe so eine hash-funktion aus?
vielen dank.
-
das einfachste wäre wohl, du nimmst z.b. sowas: http://gurmeetsingh.wordpress.com/2008/08/05/fast-bit-counting-routines/
und alle zahlen die 'nen 5'er-bit-test bestehen, werden der grösse nach sortiert.
-
Hallo,
pepe75 schrieb:
die kleinste zahl (hex 0x1f) soll den wert 0 bekommen
die naechstgroessere zahl (hex 0x3e) soll den wert 1 bekommen
die naechstgroessere zahl (hex 0x7c) soll den wert 2 bekommen
usw.Hast du dir die Zahlen mal ausgeben lassen?
Gruß,
B.B.