Задать вопрос
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Мда... От коллизий вообще не уйти. Может примем за допущение что 1 коллизия для 1 ключа это нормально?

    Но глубина пробирования будет в 1 шаг. После первой коллизии мы применяем ту-же хеш-функцию типа CRC или mur-mur но с другим seed.

    Если после 2 шага коллизия - то растягиваем таблицу.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    floppa322, функция mur-mur-hash. Линейное. Пока я фикшу баги.

    Но ты булки не расслабляй. Кодь дальше.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Короче я нашел свой старый исходник и сюда приложу а ты посмотри. Если какой-то API по Java ты не знаешь - то я могу подсказать.

    UPD: Нет. Херовенько он работает. Надо подфиксить.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    10-16n

    Тоесть ты хочешь сказать что вместо 5 млн слотов тебе надо будет 16 * 5 000 000 = 80_000_000 ?

    Восемдесят лямов?

    Ахахаха.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Нормально.

    Я 5 миллионов ключей записал в 5008333 слотов. Без коллизий за 2 итерации.
  • Как посчитать значение до прибавления к ней процента?

    mayton2019
    @mayton2019
    galliard, я написал достаточно для решения. Ты просто не мог поставить задачу в термиах алгебры.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Отписал я вариант ответа. Чего тут еще придумывать. Ну ты подумай что двухуровневая таблица - это-ж фу-фу-фу.
    Ни один нормальный разработчик не захочет тащить в проект накладные расходы ни с того ни с сего 2х от нужного размера. И кукуха здесь не поможет и Робин гуд. Если уж ты такой перфекционист.
  • Как разогнать процессор AMD?

    mayton2019
    @mayton2019
    Как давно стоит эта операционка?

    Драйвер на видео как называется? Какая версия? Возможно ли обновить?
  • Seed для CRC32?

    mayton2019
    @mayton2019
    floppa322, почитай еще про метод Робин-Гуда. Возможно тебе пригодится.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Давай я тебе мысль закину. А ты подумай. Вот в твоем исходнике-же нет таблицы.
    Там только ключи. Сет по сути. Тогда тебе можно завести битовый массив и включай биты
    где надо. У тебя 5 млн ключей?

    А я тебе предлагаю аллоцировать 512 Мб битов и этого тебе хватит для любого
    целого числа от 0 до 4 млрд.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    floppa322, ты меньше слушай ребят из Кликхаус. Они всполне могли использовать
    CRC32 (славо богу его и TCP использует и много чего) но не в таком юзкейсе как ты
    придумал.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    А как ты выбрал эти константы? Почему 16 и 14?

    const size_t INNER_BUCKET_SIZE = 16;
        const size_t ITEM_PER_BUCKET = 14;
        bool innerBucket[INNER_BUCKET_SIZE];
  • Seed для CRC32?

    mayton2019
    @mayton2019
    По поводу CRC32. Это очень примитивная функция. Она создавалась в 20-м веке
    в эпоху 16 и 32х битных процессоров. И в основе ее лежит один раунд ХОРь ,
    сдвиг и отображение из массива заранее расчетных констант.

    У нее есть некоторые интересные совйства. Кажется она идеально хеширует int32
    целое число. Вот. Но если-бы я хотел повторить такие свойства то я мог-бы
    создать функцию к примеру которая-бы ... меняла левые 16 бит и правые.
    Вот тоже самое свойство. Идеально отображает одно в другое.

    Но что говорить о прочих свойствах?
  • Seed для CRC32?

    mayton2019
    @mayton2019
    floppa322, я-ж про потребление памяти спрашиваю.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Выбор пал между кукушкой и идеальным хешированием (двухуровневое хеширование в качестве реализации)

    Я несколько раз читал эту фразу и не могу ее понять.

    Напомни пожалуйста. Двухуровневое - это когда для хранения 1000 ключей ты создаешь 2 таблицы 1000*2 = 2000 позиций.

    Верно?
  • Seed для CRC32?

    mayton2019
    @mayton2019
    У тебя github есть? Потому что pastebin это уродство какое-то.
  • Seed для CRC32?

    mayton2019
    @mayton2019
    Дружище Флоппа. Ну Кукушка она вообще не для поиска идеальной функции. Весь фокус в том
    что если у тебя 1000 ключей и из них 150 популярны (перекошенная skew гистограмма частот)
    а остальные 850 допустим редкие. И тогда кукушка поднимает популярные наверх и делает
    иммитацию идеального хеша. Но она ничего не гарантирует при других условиях.
  • Как сделать стрельбу под бит трека?

    mayton2019
    @mayton2019
    Я ошибся насчет Сэма. Послушал треки. Да там всего 2 трека миксуются. Спокойный и режим боя.

    Ну а по поводу mp3. Ну ... надо видимо для каждого трека поставить разметку где ритм стучит.
    И синхронизировать игровые события с этим генератором. Но схема все равно не идеальная.
    Трудно будет подобрать mp3 который бы долбил непрерывно. В противном случае будет
    "клинить" пулемет :)