Я должен создать функцию, которая берет случайную строку и хэширует ее в двоичный объект длиной 32. Я пробовал несколько вещей, но, поскольку моя функция требует времени, я не смог сделать достаточно быстрыйИ еще случайный хешЭто означает, что произойдет много 11111
и 00000
, хотя они предпочтительно должны быть абсолютно случайными (50/50) в каждой точке моего вектора len=32
.
hash_element=str(mmh3.hash(element,102)**5)
binary_string=bin(int(hash_element,16))[2:34]
Я также пыталсяэто, которое работало очень хорошо, но было слишком медленно:
def Hasher(x):
XX=BitVector(size=32)
for j in range(0,31):
Index=mmh3.hash(x,j) %32
if XX[Index]==0:
XX[Index]=1
return XX
Кто-нибудь из вас имеет эффективную (случайную и быструю) идею?
Хешер должен давать точно такой же результат каждыйвремя хеширования одной и той же строки, это очень важно.