Please enable JavaScript.
Coggle requires JavaScript to display documents.
RolingHash (Сделать реализацию Rabin's fingerprinting, пока простенько…
RolingHash
Сделать реализацию Rabin's fingerprinting, пока простенько на питоне что бы можно было разобраться в деталях и что-то про это все понять
Как-то понять, является ли итоговое распределение равномерным
Для этого для k=21, 33, 55, 77, 99, 127 нагенерировать много случайных строк и построить график распреления
Можно еще попробовать взять просто реальные камеры из графа, с учетом того. что у нас есть kmer tools должно быть просто.
Сделать отдельную веточку, в которой играться с реализацией :check:
-
-
Проблема :warning: :warning: :warning: У нас для более маленького m, чем k хэши нехрена равномерными не будут. Это точно проблема и не понятно что с этим делать. Возможны варианты для разных k использовать разные реализации???
-
Разобраться где, да как используется текущая реализация adt/cyclic_hash.hpp
Где используется?
-
SymmetricCyclicHash вроде, по смыслу, вполне себе используется
Он возвращается сущность, в которой храняться два числа по 64 бита, ну блин, неужели это прям особая оптимизация по сравнению с обычным точным камером?
.../common/stage/construction.cpp run, 146
Длина, которая используется это k+1
-
-
-
-
-
-
Какие-то свойства
-
Использует seed, то есть он разные в зависимости от seed
Заранее задаем сколько символов у Seq хотим хэшировать и дальше хэшируем только n_ первых символов у Seq
Интересно, чему равно обычно _n
Используется функция rol1, roln, видимо прокрутить хэш на 1 или на n.
-
precision -- видимо то, через сколько все начинает циклиться. Почему нельзя поставить precision размера 128 и тогда все типа хорошо? Или просто условно, не хотим, что бы с более большими k проблемы начинались?
-
Реализация хэшей
Говорят, что нужна precomputing table with 2^w, w - количество битов на символ, в данном случае w = 2. Нужно понять, как эту таблицу сделать.