Ответы пользователя по тегу Алгоритмы
  • Как оптимизировать алгоритм заполнения шахматки?

    x67
    @x67
    1. Как хранятся данные?
    2. На каком языке все это реализовано? (полагаю, это php)
    3. Где, собственно, код?
    Я совсем не разбираюсь в ПХП и тем более не представляю функции, выполняемые Smarty, но на мой непрофессиональный взгляд, при правильном формировании sql запроса, все должно делаться на лету буквально за секунды. У вас ведь не десятки тысяч квартир с сотнями тысяч сотрудников и диапазоном дат в тысячу лет, значит даже если алгоритмы не оптимизированы, код должен работать быстро, никак не 2 минуты. Поэтому в первую очередь проблемы надо искать в нем.
    Ответ написан
    Комментировать
  • Как организовать систему управления доступом в автобусы?

    x67
    @x67
    турникеты не нужны? ну тогда тетрадочку в клетку на 48 листов, туда аккуратными буковками вписывать паспортные данные тех, кому можно, а потом им на лоб ставить штамп. Если у кого в салоне нет штампа на лбу, побить и выгнать!
    Начнем с определения условий решения задачи, можно ведь нанять армию Лихтенштейна, которая будет сторожить автобусы, но уверен у вас найдутся причины отказаться от такой затеи.
    1. Какова стоимость разработки системы? Что-то готовое - около нуля, свое мудрить - от нуля и до бесконечности.
    2. Сколько эта система может стоить? Турникеты дорого, а тетрадка со штампом не удовлетворяет каким-то условиям. Тоже надо найти компромисс
    3. Стоимость эксплуатации системы. Можно тратить по триллиону в месяц, из них 40к кондуктору, остальное на премию, а можно закупить турникеты, которые придется обслуживать раз в n времени
    4. Спец. требования? Простота - эт понятно. Защищенность на каком уровне должна быть? печатать проездные на месяц на листочках - довольно недорого, но так может каждый, даже работник организации В.
    Помимо того, надо понимать как происходит процесс погрузки и разгрузки, какие условия работы.. Например, загружая людей через переднюю дверь, закрыв остальные, можно будет возложить обязанности вышибалы-билетера на водителя. Тогда вам нужны или электронные пропуска и считыватели соответственно, или обычные пропуска, но со списком или обновляемые каждый месяц к примеру.
    Я почему-то ратую за электронные пропуска хотя бы на основе nfc меток. Тогда в качестве считывателя подойдут спец.смартфоны со спец.программкой, выдаваемые водителям. Но для защиты от их копирования, спец. программа должна будет как минимум считывать код и определять клиента, перезаписывать на нфц метку новый код, по которому однозначно можно определить этого самого клиента, деактивировать старый и синхронизировать все это с сервером. Все это выльется в некоторую стоимость разработки ПО, закупки устройств и ежемесячное обслуживание(интернет для смартов, содержание сервера), но позволит быть уверенным, что ни один работник категории В не проникнет в автобус, а также обеспечит хорошую гибкость. Возможно дешевле будет использовать уже готовую систему пропусков, не создавая новый велосипед.
    QR коды - дешево в использовании, но никакой защиты и удобства. Потерять бумажку легко, а для защиты придется каждый раз генерировать новые билетики и отдавать их работникам категории А и Б.
    Еще неплохой вариант - рассылка смс с индивидуальными кодами. Смартфоны несмотря на 2016 есть не у всех, но вот телефоны то точно есть. При этом эти коды могут быть одноразовыми, что не позволит их просто отдавать друзьям категории В, которые тоже хотят кататься. Но и тут удобство не на первом месте - телефон может разрядиться или потеряться.
    Ответ написан
    4 комментария
  • Алгоритм поиска паттерна в неупорядоченной последовательности?

    x67
    @x67
    Ну в общем-то, как заметил Александр, вы хотите чуда, но алгоритм можно оптимизировать, если есть какая-либо закономерность, которая позволяет предсказать, в каких областях может быть искомый паттерн.
    Также если местоположение начала паттерна не может быть произвольным (то есть паттерн может начинаться в 1, 11, 21 байте, но не может начинаться в 37 к примеру), то время поиска можно сократить менее, чем в 10 раз, сначала поискав все первые байты, а потом проверив эти места уже полностью.
    Также можно поискать закономерность в этом паттерне.
    Но в целом, если это будет регулярной задачей, прикрутите что-нибудь для первоначальной обработки массива.
    Ответ написан
    2 комментария
  • Как составить рейтинг по множеству отзывов типа "А плох"; "А лучше В"; "А и Б плохи, Д лучше"; "С и А ужасны, В и Д так себе, А прекрасен"?

    x67
    @x67
    В общем-то такие задачи решаются, в том числе и на олимпиадах всяких. Гуглить в сторону комбинаторики. Совершенно без гугла я бы решал щадачу следующим образом:
    1. Для каждой из групп товаров (а и б, к примеру) получал бы усредненный отзыв (а лучше б в 75% случаев), а потом просто сортировал бы.. А лучше б в 75% случаев, но в лучше б в 60%, значит топ выглядит так: а, в, б.
    Энивэй, будут встречаться артефакты(а лучше б, в лучше а, но б лучше в), если не давать веса отзывам и не строить модель оцениваемых параметров и их важности(функционал, цена, эргономика и тд)
    Ответ написан
    Комментировать