Я использую хеширование строк для заполнения случайных состояний следующим образом:
context = "string"
seed = hash(context) % 4294967295 # This is necessary to keep the hash within allowed seed values
np.random.seed(seed)
К сожалению, (для моего использования) это недетерминировано между запусками в Python 3.3 и выше. Я знаю, что могу установить PYTHONHASHSEED
переменную окружения в целочисленное значение, чтобы восстановить детерминизм, но я, вероятно, предпочел бы что-то, что кажется немного менее хакерским, и не будет полностью игнорировать дополнительную безопасность, добавляемую случайным хешированием. Предложения?
Решение проблемы
Используйте специально созданную хеш-функцию. zlib.adler32()
отличный выбор; в качестве альтернативы, проверьте hashlib
модуль для получения дополнительных опций.
Комментариев нет:
Отправить комментарий