Ответы пользователя по тегу Алгоритмы
  • Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")?

    Ninazu
    @Ninazu
    Зависит от того где храните эти данные и в каком виде.

    Например для MySQL можно указывать последовательность сортировки в ORDER BY
    Ответ написан
  • Какой алгоритм предпочитаете для проверки целостности данных/файлов?

    Ninazu
    @Ninazu
    То что вы понимаете под
    можно "сломать" файл и хэш при этом не изменится

    Называется коллизией. Обычно такие атаки имеют крайне жесткие требования. Например оба файла должны быть сугубо указанного размера. Часть файла должна совпадать. И т.д. И это ускоряет перебор в какое-то количество раз. Но не значит что дает возможность модифицировать как угодно один файл, и подогнать результат к значению хеша.
    Если бы это было так. То всякие интернет казино, с преждевременными результатами и контролем честности, а также блоки биткоина. Сделал бы очень богатыми людей которые способны подбирать коллизии такие)
    Ответ написан
    1 комментарий
  • Как найти оптимальное расположение объектов в контейнере?

    Ninazu
    @Ninazu Автор вопроса
    SVG генерирую программно сам, а потом просто скармливаю на просчет этой прелести
    https://deepnest.io/
    Ответ написан
    1 комментарий
  • Какая реализация дерева лучше?

    Ninazu
    @Ninazu
    Все зависит от того зачем вам это дерево.
    1. Это Adjacency List, он хорош когда вам нужно часто писать в дерево и редко его читать.
    2. Это Nested Set, он хорош когда вам нужно часто читать дерево и редко в него писать.

    Для того чтоб построить часть дерева по первому варианту вам нужно либо вытаскивать ВСЕ записи из базы, и потом рекурсивно проходится по ним и строить его, либо писать встроенную процедуру для того чтоб рекурсия была на стороне базы данных. Также нужно следить чтоб не возникало циклических зависимостей в айдишниках

    Второй вариант может вытянуть часть дерева со всеми его дочерними элементами одним запросом, но при изменении структуры запросы могут быть тяжелыми, особенно когда дерево внушительных размеров.

    Лично я использую первый вариант для дерева комментариев, а второй для меню сайта. Хотя деревья всегда есть смысл кэшировать.
    Ответ написан
    Комментировать