Задать вопрос
  • Как решать задачи по программированию математическим путем, а не "в тупую"?

    Чтобы решать математическими методами - да, нужно знать математику. В частности дискретную, тк чаще именно её использую при решении алгоритмических задач.

    Книга есть. Начать можно с достаточно толстой: Алгоритмы, построение и анализ.
    Например там в начале показан пример, как найти (или хотябы доказать корректность) решение при помощи индукции, доказывая, что на каждом шаге алгоритма будет выполняться какой-то инвариант (например что вся левая часть массива отсортирована после того, как мы перешли к правой)
    Ответ написан
    Комментировать
  • OpenCV. Почему отдельные кадры из видео весят больше чем видео?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что кадры в массивах хранятся в несжатом виде, а исходный видео-ролик сжат кодеком.
    Кодеки сейчас довольно сложные, у них много параметров сжатия и нетривиальные алгоритмы. Вы один и тот же ролик можете расжать и сжать по новой, а в результате получите совсем другой объём и даже немного отличающийся контент, ведь сжатие происходит обычно с потерей качества.
    Ответ написан
    Комментировать
  • Почему я получаю разные значения из bytes при итерации и при высчитывании шестнадцатеричного числа вручную?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Вероятно, Вы не учли символы > и _, которые также являются частью Вашей строки bytes. Коды этих символов (62 и 95) в десятичной системе и являются теми числами, которые вызывали у Вас вопросы.

    data = b'>\x02\xfe\xbf_\xec\xe6\xee\x00R'
    
    for i in range(len(data)):
        hex_repr = '\\x{:02x}'.format(data[i])
        print(i, data[i], f"({hex_repr})")
    
    # 0 62 (\x3e)
    # 1 2 (\x02)
    # 2 254 (\xfe)
    # 3 191 (\xbf)
    # 4 95 (\x5f)
    # 5 236 (\xec)
    # 6 230 (\xe6)
    # 7 238 (\xee)
    # 8 0 (\x00)
    # 9 82 (\x52)
    Ответ написан
    1 комментарий
  • Как борются с взломом нейросетей?

    @oleg_ods
    Из мануала Tesla model S:

    Автопилот — это набор расширенных функций помощи водителю, призванных сделать вождение более безопасным и менее напряженным. Ни одна из этих функций не делает Model S полностью автономной и не заменяет вас в качестве водителя. Функции автопилота входят в стандартную комплектацию всех новых автомобилей Tesla.


    От туда же с маркировкой «Предупреждение»:
    Автопилот — это практическая функция. Всегда держите руки на руле и помните о дорожных условиях, окружающем движении и других участниках дорожного движения (например, пешеходах и велосипедистах). Всегда будьте готовы принять немедленные меры. Несоблюдение этих инструкций может привести к повреждению оборудования, серьезным травмам или смерти.


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


    Сейчас не могу найти, но раньше в мануале в разделе «Автопилот» был текст под кучей звездочек примерного содержания: «Автопилот - маркетинговое название продвинутой системы круиз-контроль».

    Решения проблемы, которую Вы описали по сути не существует. Единственное, что можно сделать это «кормить» сеть дополнительными данными, чтобы «людям рисующим левую разметку» было тяжелее сбить ее(нейронку) с толку.
    Ответ написан
    3 комментария
  • Как нажать кнопку на сайте, парсинг?

    @alekssamos
    Программист любитель
    import requests
    s=requests.session()
    s.headers={"X-Requested-With": "XMLHttpRequest"}
    joke_text = s.post("https://randstuff.ru/joke/generate/").json()["joke"]["text"]
    print(joke_text)
    Ответ написан
    Комментировать
  • Удалить из ряда элементы ,как?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Например, вот так:
    def GenerateAll(source, rep):
      for comb in itertools.combinations(range(len(source)), len(source)-len(rep)):
        s = list()
        prev = 0
        for (i, j) in enumerate(comb):
          s.append(source[j]);
        yield "".join(s)


    Обратите внимание, перебираем не сочетания из удаляемых позиций, а из 22 оставляемых (кстати, у вас числа не бьются, 48+22 = 60 != 64). Тут порядок в ответе будет обратный (первая строка будет "xxxxxx...xxxx12..." а не "12..xxx..xx". Если нужен тот же порядок, то будет чуть сложнее:
    def GenerateAll(source, rep):
      for comb in itertools.combinations(range(len(source)), len(rep)):
        s = list()
        prev = 0
        last = 0
        for (i, j) in enumerate(comb):
          while (last < j):
              s.append(source[last]);
              last += 1
          last += 1
        while (last < len(source)):
              s.append(source[last]);
              last += 1
        yield "".join(s)


    Это не самое питонистое решение, возможно в какой-то библиотеке уже есть готовая функция, которая вырезает из строки символы по индексам.
    Ответ написан
    1 комментарий
  • Как правильно выбрать фреймворк и яп для проекта, если ты заказчик?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Выбор инструмента - это задача тимлида и/или техлида. Т.е. ведущего/главного разработчика, отвечающего за принятие ключевых технических решений. Ваша задача, как заказчика, четко оформить требования, ограничения и сформировать начальное ТЗ и описание, что вам требуется от проекта, прототипы интерфейса, например. Без вникания в технические детали. Т.е., "хочу чтобы были фичи такие-то и работил они так-то, ограничения такие-то, требования такие-то". Далее уже задача найти разработчика/команду с большим или достаточным для данного проекта опытом. Далее из начального ТЗ формируется полноценное техническое задание: описывается весь требуемый функционал, рисуется дизайн, прописываются требования, ограничения и прочие хотелки. И на основе ТЗ, тим/тех лид уже подбирает/подбирают наиболее оптимальные и конкретные инструменты и решения, основываясь на собственном опыте и знаниях для конкретно этой задачи. Например, если человек хорошо знает несколько разных инструментов и есть достаточный опыт их использования - он может реализовать проект используя любой из них как одинаково хорошо, так и одинаково плохо. У разных ЯП и фреймворков свои плюсы и минусы. Далее из ТЗ формируется более детальное ЧТЗ и происходит разработка проекта.

    Вот вы говорите:
    Нужно будет выполнять много запросов к БД

    Важная быстрая скорость работы нашего сайта

    Много/быстро это сколько? 100 запросов в час? 1000 в минуту? 1М в секунду? Загрузка страницы за 30/10/1с или даже 100мс? А к какой именно БД? Какая характеристика самих данных и какого типа запросы? На какое количество соединений? В каком регионе? Есть ли там тяжелые или еще какие-то вычисления? Медиа файлы - картинки, видео? Тут очень много нюансов. В идеале следует определиться с конкретными значениями/параметрами и их описать в ТЗ. Ну или определить примерное, а фактическое значение определить на стадии прототипа/MVP и/или провести какое-то исследование/тестирование. Можно потратить десяток лямов на написание крутого кода на го/расте/С++/ассемблере в течении года и все будет летать на простейшем сервере. А можно купить свой сервер за лям (ну, условно, конечно), нанять питонщика или PHP-ника за 300к и он за пару-тройку недель добьется такого же результата. Большинство веб-задач сегодня достаточно просто или с минимальными усилиями решаются абсолютным большинством решений для веба. Да, у всех решений есть свои плюсы и минусы.

    Безопасность от всяческих XSS и SQL атак.

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

    А так - уже правильно посоветовали сразу брать дот-нет, т.к. у вас требование к использованию конкретной библиотеки для дот-нета.
    Ответ написан
    1 комментарий
  • Что за ошибка в python?

    Vindicar
    @Vindicar
    RTFM!
    Поясню ответ Алан Гибизов: Обратный слэш (\) в строковых литералах Питона (как и во многих языках) имеет специальное значение, зависящее от следующего символа. Например, \n означает символ перевода строки, \t - символ табуляции, и т.д. Последовательность \u позволяет задать символ юникода по его коду, например, символ \u00A7 это значок параграфа (§). Но это также разделитель каталогов в пути на платформе Windows. А у тебя в пути есть последовательность "C:\Users\777\Desktop\Новая папка\67.png".
    Избежать этого конфликта можно одним из трёх способов:
    * использовать последовательность \\ - она означает просто символ \ без специального поведения.
    * использовать "сырой" строковой литерал - my_path = r'C:\Users\'. В таких литералах символ \ не имеет специального поведения, это просто символ.
    * Записать путь, используя прямой слэш /. Винда это позволяет.
    Ответ написан
    Комментировать
  • Что за ошибка в python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Попробуйте варианты:
    Поставить r перед строкой пути
    my_path = r'C:\Users\'
    Задвоить все слеши
    my_path = 'C:\\Users\\'
    Заменить все слеши на обратные
    my_path = 'C:/Users/'
    Ответ написан
    1 комментарий
  • Как превратить str в словарь (2 часть)?

    Vindicar
    @Vindicar
    RTFM!
    Сам словарь полученный от телеграмм мне нужно его в нужном моменте сохранять в бд, а позже вытаскивать обратно превращая назад в dict, но все идет по наклонной

    Ну т.е. как и предсказывали, проблема в более раннем коде.
    Когда сохраняешь в БД, делай не str(mydict), а json.dumps(mydict). Тогда можно будет делать json.loads() при загрузке.

    Только словарь надо будет почистить от постороннего, а ещё лучше - сначала сделать свой словарь ,в который сохранять ТОЛЬКО то, что тебе надо. Например, ты не заметил, что у тебя в словаре есть
    'entities': [<telebot.types.MessageEntity object at 0x7770137fd0>]

    Сюрприз-сюрприз, объект
    <telebot.types.MessageEntity object at 0x7770137fd0>
    явно сериализации не поддаётся, и ни сохранить, ни восстановить его не выйдет. Или убирать ключ entities, если он тебе не нужен, или разбираться, что это за объект и сериализовывать/восстанавливать его вручную.
    Ответ написан
    3 комментария
  • Почему в linux подобных системах нет привычных установщиков программ?

    @AlexVWill
    Потому что Windows изначально строился на другой идеологии - что приложения пишутся как законченный продукт. И допускается его изменение только автором программы. Поэтому установка осуществляется скомпилированным файлом ехе, в который пользователю лазить не надо.
    В NIX-подобных системах все было заточено на opensource и на online работу. Поэтому и появились репозитории, где исходный код, который надо собрать самому под конкретную систему, потом в них добавили apt, т.е. поддержку пакетов, сконфигурированных уже под конкретную систему. И это хорошо, потому что установка и обновление конкретных приложений идет не непойми откуда, а из четко понятного места.
    Ответ написан
    5 комментариев
  • Может ли Раст полноценно заменить Джаву в сфере финансовых технологий?

    vabka
    @vabka Куратор тега Rust
    На Java пишется очень много разных вещей, в тч не требовательных к утилизации ресурсов и задержкам так что предположу, что многие вещи просто нецелесообразно переписывать.

    Кроме Java в финтехе вообще много разных языков используется. Даже такая экзотика как Haskell и F# бывает.

    Могу сказать, что сейчас работаю в большой корпорации и мы как раз пишем на Rust штуки, которые отвечают за работу с платёжными системами.

    Раньше примерно то же самое писалось на плюсах.

    На Java такое не писалось, тк авторизация транзакций должна меньше чем за секунду происходить после того как покупатель приложил карту к терминалу, и при этом нужно много разных проверок произвести.
    При этом многомиллионную ораву клиентов спокойно обслуживает не самый мощный сервер (емнип всего 32гб оперативки) с минимальным количеством сбоев.
    Ответ написан
    5 комментариев
  • Как перебрать 5 или более списков в одном цикле?

    Vindicar
    @Vindicar
    RTFM!
    А как перебирать-то, чудо?
    Параллельно?

    list1 = list('abcdef')
    list2 = list('klmnop')
    list3 = list('uvwxyz')
    
    for item1, item2, item2 in zip(list1, list2, list3):
        print(item1, item2, item2)


    Последовательно?

    import itertools
    
    list1 = list('abcdef')
    list2 = list('klmnop')
    list3 = list('uvwxyz')
    
    for item in itertools.chain(list1, list2, list3):
        print(item)


    Во всех сочетаниях?

    import itertools
    
    list1 = list('abcdef')
    list2 = list('klmnop')
    list3 = list('uvwxyz')
    
    for item1, item2, item3 in itertools.product(list1, list2, list3):
        print(item1, item2, item3)

    Ответ написан
    Комментировать
  • Практика очного собеседования для иногородних кандидатов?

    Такое иногда бывает.
    Я бы попросил у потенциального работодателя компенсацию поездки. (За билеты, проживание, и питание).
    ЗЫ: если два дня на поезде, то может оказаться сравнимой цена за самолёт.

    Если они не готовы на такое - значит отказ
    Ответ написан
    1 комментарий
  • Как находить лучший способ решение задачи на олимпиадном программировании?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Нарешаете много задач, научитесь в голове перебирать известные алгоритмы.

    А так - на до сначала построить математическую модель задачи. Понять, на что эта модель похожа. Может, тут граф нарисовать можно? Какие алгоритмы на графы вы вообще знаете? Применимы ли они тут? Или это строка. Какие есть алгоритмы на строки? Смотрите еще ограничения. По ним обчно понятно, что тут нужно что-то за O(n), или за O(n log n) написать. Множество применымых алгоритмов еще больше уменьшается.

    В задачах на оптимальность чего-то помогает рассуждение "рассмотрим ответ. Какие у него можно заметить свойства. Можно ли какой-то ответ немного поменять, не ухудшая его?" Так вы получите какое-то свойство, которое можно уже применять для построения ответа. Например в задачах на жадность так можно понять, что надо отсрортировать что-то.

    Потом, очень частая тема - ДП. Попробуйте параметризировать задачу. Свести ее к подзадачам. Формализуйте ДП (считаем вот такую вот функцию от вот этих вот параметров вот с таким вот физическим смыслом).
    Ответ написан
    Комментировать
  • Почему энтри объект игнорирует запросы?

    Vindicar
    @Vindicar
    RTFM!
    зашитая в кнопку команда объектом энтри игнорируется

    Ты в обработчике кнопки сам создаёшь новый экземпляр класса Put_Entry (который является виджетом), нигде его не размещаешь, а просто что-то с ним делаешь. Конечно, уже существующие экземпляры от этого никак не изменяются - твоя кнопка про них ничего не знает и никак их не трогает.

    Короче, читай учебник, для начала. У тебя, похоже, полнейшая каша в голове. Разбирайся в понятиях области видимости и времени жизни, для начала - тогда будет понятнее, что где хранить и что куда передавать.
    Не говоря уже о том, что я тебе уже два раза показывал, как хоть немного правильно создавать свои UI-классы, но как об стенку горох.
    Ответ написан
    4 комментария
  • Данные из буфера не обновляются, что сделать?

    Vindicar
    @Vindicar
    RTFM!
    Сейчас код сначала получает текст, содержащий координаты точек из буфера обмена, потом разбирает и проверяет каждую строку и переспрашивает нужна ли она, а потом уже входит в цикл while True, где он их прокликивает и ожидает нажатия w или q.
    Нужно всю ту часть, где определяются координаты, а также сам код прокликивания внести внутрь ветки w.

    Как именно - спрашивай у того, кто написал код.
    Ответ написан
    Комментировать
  • Выбор темы для будущего DevOps инженера?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    какое отношение дипломная работа (по идее исследовательский проект) имеет к рабочей обстановке (использование всем известных и проверенных world best practices) ?

    Чем вы занимались в вашем учебном заведении последние 3-4 года, если даже тему не можете выбрать?
    ЛЮБОЕ бери, в чем ты силен, и вперед.
    Можешь попробовать сравнить использование велосипеда на баш против Ansible или Jenkins для оркестрации чего-либо
    Ответ написан
    Комментировать
  • Выбор темы для будущего DevOps инженера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Из воображаемых задач много релевантного опыта не получишь. Тема которая "понравится преподу" и та, которая будет полезна вам в дальнейшем - это штуки перпендикулярные.

    Стандартная балалайка - автоматизация существующей инфраструктуры, переход от накликивания руками к IaaC, Terraform, Ansible, CI/CD с линтерами, автоматический деплой на тест/стейдж/прод и всё такое.
    Ответ написан
    Комментировать
  • Какую выбрать ОС для веб-разработчика?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Оставайтесь, на чём удобнее работать. "Совместимость с линуксом" на любой ОС обеспечивается докером.
    Ответ написан
    9 комментариев