>> (200 + 10) * 2Mb = 420M
>> вы разве не видите, что основной объем занимают ваши 200 байт * 2M ?
Неверно, я уже писал выше, что сами 200 байт мне не нужно нигде хранить. Хранить я буду именно 2М*длину_хэша.
Найду хэш длиной 10 байт - буду хранить 20М, найду хэш 3 байта - буду хранить 6М.
>> преобразуйте в 4 байта - которые есть номер в данной последовательности.
Ну так это преобразование и есть та самая хэш-функция, реализацию алгоритма которой я пытаюсь понять.
Найду - сопоставлю строке в 200 байт 4 байта хэша и буду хранить 8 метров данных.
>> размер индекса вас вообще волновать не должен, это копейки
Какие ж это копейки, если их размер сопоставим с данными?
Если ключ уникален, то индекс займет столько же места. (утрирую)
>> как я понял вы подумали что все буддет тормозить не потестировав
Я не столько хочу увеличить скорость, сколько уменьшить объем данных. Млин, неужели никто не программировал под 286-е, когда память приходилось собирать по крохам?
Если бы мне было параллельно, я бы давно забил на эту задачу, реализовал бы 32 байтный хэш и не мучался. Смысл не в том, чтобы получить хэш, а в том, чтобы хэш был минимального размера
-~{}~ 12.08.05 03:00:
>тебе 5 минут жалко ради гениальной задумки?
Да нет. Поэтому и пишу сижу. Уже хэш до 10 байт сократил.
Ищу 9-ти байтный.
>кстати, если я ничего не путаю, то определитель определен только для квадратных матриц
Запросто, я уже не помню. Это и не суть важно, если честно.