Отписал я вариант ответа. Чего тут еще придумывать. Ну ты подумай что двухуровневая таблица - это-ж фу-фу-фу.
Ни один нормальный разработчик не захочет тащить в проект накладные расходы ни с того ни с сего 2х от нужного размера. И кукуха здесь не поможет и Робин гуд. Если уж ты такой перфекционист.
Давай я тебе мысль закину. А ты подумай. Вот в твоем исходнике-же нет таблицы.
Там только ключи. Сет по сути. Тогда тебе можно завести битовый массив и включай биты
где надо. У тебя 5 млн ключей?
А я тебе предлагаю аллоцировать 512 Мб битов и этого тебе хватит для любого
целого числа от 0 до 4 млрд.
floppa322, ты меньше слушай ребят из Кликхаус. Они всполне могли использовать
CRC32 (славо богу его и TCP использует и много чего) но не в таком юзкейсе как ты
придумал.
По поводу CRC32. Это очень примитивная функция. Она создавалась в 20-м веке
в эпоху 16 и 32х битных процессоров. И в основе ее лежит один раунд ХОРь ,
сдвиг и отображение из массива заранее расчетных констант.
У нее есть некоторые интересные совйства. Кажется она идеально хеширует int32
целое число. Вот. Но если-бы я хотел повторить такие свойства то я мог-бы
создать функцию к примеру которая-бы ... меняла левые 16 бит и правые.
Вот тоже самое свойство. Идеально отображает одно в другое.
Дружище Флоппа. Ну Кукушка она вообще не для поиска идеальной функции. Весь фокус в том
что если у тебя 1000 ключей и из них 150 популярны (перекошенная skew гистограмма частот)
а остальные 850 допустим редкие. И тогда кукушка поднимает популярные наверх и делает
иммитацию идеального хеша. Но она ничего не гарантирует при других условиях.
Я ошибся насчет Сэма. Послушал треки. Да там всего 2 трека миксуются. Спокойный и режим боя.
Ну а по поводу mp3. Ну ... надо видимо для каждого трека поставить разметку где ритм стучит.
И синхронизировать игровые события с этим генератором. Но схема все равно не идеальная.
Трудно будет подобрать mp3 который бы долбил непрерывно. В противном случае будет
"клинить" пулемет :)
Компьютерщики эту проблему не победят. Тебе надо идти на радио-рынок и искать старых дядек
которые паяют радио-трансиверы и звуко-технику вообще. Они помогут. Дефект - аналоговой техники.
Да по всей видимости экранировка где-то отвалилась и усилитель усиливает мусор. Но где
сказать трудно. Да и в формате хабра тут не решится ничего.
UPD: Нет. Херовенько он работает. Надо подфиксить.